# Docker自建WebDAV用于思源笔记/KeePass同步



## 一、方案对比：为什么要选自建 WebDAV？

|方案|优势|缺点|
|---|---|---|
|自建 WebDAV（Docker）|轻量（镜像<10MB、内存占用<5MB）、数据私有、空间和功能无限制|需自有云主机或NAS|
|第三方云盘（坚果云/koofr）|无需部署|限速/付费、数据隐私风险、空间有限/功能有限制，例如坚果云webdav不支持思源笔记|
|自建 Nextcloud/Seafile|功能全|臃肿占资源、配置复杂|
|Alist/Openlist|自带webdav，无需额外部署|异地访问会暴露网盘入口到公网|

## 二、部署方法（Docker 极简版）

1. 准备环境：安装 Docker + Docker Compose（全平台通用）；

2. 创建存储目录（示例）：`mkdir -p /webdav/data`（存放思源笔记/keepass密码库等），在该目录创建`config.yml`内容如下：
```yaml
# 服务器监听配置
address: 0.0.0.0
port: 6065

# 基础设置
tls: false
prefix: /
debug: false
noSniff: true
behindProxy: true

# 默认目录
directory: /data

# CORS 配置
cors:
  enabled: true
  credentials: true
  allowed_headers:
    - Depth
    - Authorization
    - Content-Type
    - Content-Length
  allowed_hosts:
    - "*"
  allowed_methods:
    - GET
    - PUT
    - POST
    - DELETE
    - PROPFIND
    - MKCOL
    - COPY
    - MOVE
  exposed_headers:
    - Content-Length
    - Content-Range

# 日志
log:
  level: debug
  format: json


# 用户配置
users:
  - username: usr
    # 获取 bcrypt 密码，替换$2a$10$...：sudo docker run --rm hacdias/webdav:v5.11.1 bcrypt "pwd123"
    password: "{bcrypt}$2a$10$..."
    permissions: CRUD
    # password: pwd123 可选：明文保存密码
    # directory: /data/yan 可选：指定用户专属目录
```

3. 编写 docker-compose.yml（核心配置，自定义端口/账号）同样放在`/webdav/data`；
```yaml
services:
  webdav:
    image: hacdias/webdav:v5.11.1
    container_name: webdav
    restart: unless-stopped
    ports:
      - "6065:6065" 
    volumes:
      - ./config.yml:/config.yml:ro
      - ./data:/data                     #数据保存目录，按需修改
    environment:
      - TZ=Asia/Shanghai
    command: ["-c", "/config.yml"]
```

4. 启动服务：进入配置目录`/webdav/data`，执行 `docker-compose up -d`，显示“Up”即成功。


> 局域网访问地址 http://nasip:6065，实测思源笔记1000个文件（70MB左右）同步仅需1.5秒；

---

> 作者: [Yan.X](https://g9g.top)  
> URL: https://g9g.top/posts/webdav/  

