用caddy 和 hacdias/webdav 的 Docker 镜像提供 WebDAV 服务
Posted on Wed 11 January 2023 in howto
这个设置使用 caddy 反向代理 hacdias/webdav 服务器为网站提供 WebDAV 功能。
首先下载相应的docker镜像:
docker pull caddy
docker pull hacdias/webdav
新建目录webdav,在其中放置下列配置文件:
webdav的配置文件 config.yml:
# Server related settings
address: 127.0.0.1
port: 8000
auth: true
tls: false
prefix: /
# Default user settings (will be merged)
scope: .
modify: true
rules: []
cors:
enabled: false
credentials: false
users:
- username: user
password: "{bcrypt}password"
scope: /data
caddy 的配置文件 Caddyfile:
your.domain.name {
file_server
root * /www
encode gzip
}
https://your.domain.name:8888 {
reverse_proxy 127.0.0.1:8000
}
docker-compose.yml:
version: '3'
services:
webdav:
image: hacdias/webdav
restart: always
network_mode: host
volumes:
- ./config.yml:/opt/webdav.config.yml
- ./data:/data
command:
--config /opt/webdav.config.yml
container_name: webdav
caddy:
image: caddy:latest
restart: always
network_mode: host
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./www:/www
- ./caddy_data:/data
container_name: caddy
在webdav下建立以下目录:
- www,其中可放置网站的静态页面,例如一个简单的 index.html
- caddy_data,用于保存 caddy 镜像运行时产生的数据
- data,在其中存放需要WebDAV服务的内容,例如 TiddlyWiki、Joplin笔记等。
启动docker容器:
docker-compose up -d