docker 搭建 webdav

发布于 2023-05-03  1 次阅读


前言

18 年的时候,由于需要 webdav 作数据同步用,在到处找支持这个协议的网盘。那个时候支持这个协议的网盘很少,国内有坚果云,不过免费账户每月限额 1G,国外有 box 倒是没什么限制,不过网络由于不知名原因连上全靠运气!

主要考虑当时坚果云 1G 的每月限额怕不够用,所以最终权衡下还是在 box 安了家~结果一晃这么多年过去了,到现在每个月的流量都没超过 1G 。。。

最近想同步下数据,但是 box 的 webdav 却怎么也登不上去了,于是翻出了陈年老账号,登录了注册后几乎就没再手动登录过的 box,惊了,webdav 居然没了,反正我是没找到。。。

想想也确实,现在网盘同步各家都有自己的 APP 了,也在力推 APP,webdav 确实没落了。。。就像寄人篱下,当初还好,可能还窃以为自己终于有个家了,但久而久之,自己也越来越没主动权,房主的一颦一笑成了你的生活准则。。。

配置 docker compose

搭建很简单😄,新建一个 webdav 的 docker-compose 文件,然后进入编辑:

mkdir webdav && cd webdav
nano webdav.yaml

然后写入配置:

version: '3'
services:
  webdav:
    image: bytemark/webdav
    container_name: webdav
    volumes:
      - "./data:/var/lib/dav"
    restart: unless-stopped
    environment:
      TZ: Asia/Shanghai
      USERNAME: yourname # webdav 登录用户名
      PASSWORD: yourpwd # webdav 密码

nginx 反代

编辑 nginx 的配置文件,加入如下信息:

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name dav.domain.com; # 你的域名
  ssl_certificate     /path/to/ssl/cert/crt; # 你的证书位置
  ssl_certificate_key /path/to/ssl/key/key; # 你的证书私钥位置

  location / {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host $host;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_pass         http://webdav:80; # 反代上面的容器地址
  }
}

使用

保存后启动容器,然后重载下 nginx 配置:

# -f 后填入上面 webdav.yaml 的路径
docker compose -f webdav.yaml up -d
nginx -s reload

要使用 webdav 的时候,可以先把文件放在刚刚容器创建的 data 文件夹的 data 文件夹里面(是的,有 2 层,外层 data 是我们写在配置里面的路径,里面层是容器内自己创建的)!

编辑数据的时候,客户端 webdav 地址填入你自己的域名+文件,例:https://dav.domain.com/test.dat,用户名为上上步中 webdav.yaml 里面填入的用户名和密码就可以啦!

box 网盘里面的文件一清,账号想了想还是留着吧,感谢陪伴多年,再见啦~ 5 分钟造了一个简易的家,但毕竟是自己的~想来习惯真是个可怕的东西~