Debian 使用 Docker Compose 部署 hacdias/webdav

Debian 使用 Docker Compose 部署 hacdias/webdav

项目地址:https://github.com/hacdias/webdav
镜像ghcr.io/hacdias/webdav:latest(推荐)或 hacdias/webdav:latest
部署目录/var/www/webdav/(所有文件集中管理)

1. 目录结构(推荐)

/var/www/webdav/
├── docker-compose.yml     # Docker Compose 主配置文件
├── config.yml             # WebDAV 核心配置文件(用户名、密码、权限等)
├── README.md              # 本文档(可直接复制官方 README)
└── data/                  # WebDAV 实际存储目录(挂载到容器 /data)

2. 前置条件

# 1. 更新系统并安装 Docker + Compose
sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose-plugin

# 2. 将当前用户加入 docker 组(无需每次 sudo)
sudo usermod -aG docker $USER
newgrp docker   # 或重启终端

3. 一键创建部署目录和文件

# 创建目录
sudo mkdir -p /var/www/webdav/data
sudo chown -R $USER:$USER /var/www/webdav

# 进入目录
cd /var/www/webdav

4. 创建 docker-compose.yml

/var/www/webdav/ 目录下创建文件 docker-compose.yml,内容如下:

version: "3.8"

services:
  webdav:
    image: ghcr.io/hacdias/webdav:latest
    container_name: webdav
    restart: unless-stopped
    ports:
      - "6065:6065"          # 主机端口:容器端口(可在 config.yml 修改端口)
    volumes:
      - ./config.yml:/config.yml:ro     # 配置只读挂载
      - ./data:/data                    # WebDAV 根目录
    # 可选:开启日志驱动方便 fail2ban
    # logging:
    #   driver: journald

5. 创建 config.yml(核心配置)

在同一目录下创建 config.yml推荐使用以下已优化配置(适合 Alist 挂载 + 视频播放):

address: 0.0.0.0
port: 6065

# TLS(暂时关闭,后续可配合 Caddy/Nginx 反代开启 HTTPS)
tls: false
cert: cert.pem
key: key.pem

prefix: /
debug: false
noSniff: false
behindProxy: false          # 如果后面加反向代理,请改为 true

# 默认存储目录(容器内路径)
directory: /data

# 默认权限:CRUD(创建、读取、更新、删除)——适合视频挂载
permissions: CRUD

# 日志
log:
  format: console
  colors: true
  outputs:
    - stderr

# CORS(Alist / 播放器必备)
cors:
  enabled: true
  credentials: true
  allowed_hosts:
    - "*"
  allowed_headers:
    - Authorization
    - Content-Type
    - Depth
    - Destination
    - If
    - Lock-Token
    - Overwrite
    - TimeOut
    - Translate
  allowed_methods:
    - COPY
    - DELETE
    - GET
    - HEAD
    - LOCK
    - UNLOCK
    - MKCOL
    - MOVE
    - OPTIONS
    - POST
    - PROPFIND
    - PROPPATCH
    - PUT

# 用户配置(强烈建议修改密码!)
users:
  - username: admin
    password: 请在这里修改成强密码123456   # 明文密码,生产环境建议改成 bcrypt
    permissions: CRUD
    directory: /data                    # 可为不同用户指定独立目录

  # 示例:再加一个只读用户(可选)
  # - username: readonly
  #   password: readonlypass
  #   permissions: R
  #   directory: /data

密码建议
- 明文密码最简单(适合个人使用)
- 推荐使用 bcrypt(更安全):

docker run --rm ghcr.io/hacdias/webdav bcrypt 你的密码

然后把生成的字符串填到 password: "{bcrypt}$2y$10$..."

6. 启动服务

cd /var/www/webdav
docker compose up -d

查看日志:

docker compose logs -f

7. 常用维护命令(保存在 README.md 里)

# 启动
docker compose up -d

# 停止
docker compose down

# 重启
docker compose restart

# 查看日志
docker compose logs -f

# 更新镜像
docker compose pull && docker compose up -d

# 进入容器 shell(调试用)
docker exec -it webdav sh

8. 测试访问

  • 浏览器打开:http://你的服务器IP:6065
  • 用户名:admin
  • 密码:你刚才设置的密码

WebDAV 客户端测试(Windows、macOS、Android 都支持):
- Windows:\\你的IP@6065\
- Alist:添加 WebDAV 存储,地址填 http://你的IP:6065

9. 安全与后续优化建议

  1. 强烈推荐 加反向代理(Caddy 或 Nginx)开启 HTTPS + 域名访问
  2. 生产环境开启 behindProxy: true 并在反代中透传 X-Forwarded-For
  3. 可配合 fail2ban 防暴力破解(日志已支持)
  4. 想给不同用户不同目录?在 users 里分别指定 directory 即可

评论

还没有人评论,抢个沙发吧...

Viagle Blog

欢迎来到我的个人博客网站