使用docker搭建webdav应用

前言

一直想搭建好nas的webdav服务,但网上大多数服务都不支持多用户,许多人推荐的hacdias/webdav项目也找不到详细的安装教程,也就一直搁置了。如今终于搭建成功,便把个人的搭建流程发出来,希望能帮到有需要的人。因为我也不大懂也就是刚跑起来,所以有问题的地方请大佬们轻喷orz

搭建教程

咱使用的是hacdias大佬的基于Go语言的webdav,项目地址在这里。这里使用官方的docker镜像。

创建配置文件

在准备好的目录(本例为/docker/webdav)创建配置文件config.yaml,填入以下内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 监听任意网卡,多网卡可指定对应ip
address: 0.0.0.0
port: 8081
auth: true
prefix: /
modify: true
rules: []

# 跨域设置
cors:
enabled: true
credentials: true
allowed_headers:
- Depth
allowed_hosts:
- http://localhost:8081
allowed_methods:
- GET
exposed_headers:
- Content-Length
- Content-Range

# 用户信息,如果 auth 为 true 生效
users:
- username: admin
password: admin
# 配置自己的 webdav 访问范围,此例为 /data 内所有文件
scope: /data

创建容器

与多数docker容器创建相同,值得注意的是要将config.yaml所在目录映射进容器,并在启动参数指定config为容器内config.yaml

参考:

1
docker run -d --name webdav-go -v /media:/data/media -v /docker/webdav:/config -p 8081:8081 --restart unless-stopped hacdias/webdav:latest --config /config/config.yaml

目录与端口映射

将想要通过webdav访问的目录映射进容器内部/data目录,配置文件目录/docker/webdav映射到容器/config目录,端口8081映射到外部。

启动参数

添加启动参数--config /config/config.yaml。portainer-ce安装要在Advanced container settings-Command & logging设置,command设置为override并填入参数。

挂载 webdav

推荐使用RaiDrive挂载webdav盘,2020.6.36前的版本没有广告。有需求可自行反代。

参考资料

hacdias/webdav: Simple Go WebDAV server.
记录一次NAS系统崩溃


使用docker搭建webdav应用
https://sunjx97.github.io/posts/cb46f731/
作者
sunjx97
发布于
2022年2月19日
许可协议