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内容如下:

 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 服务器监听配置
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 可选:指定用户专属目录
  1. 编写 docker-compose.yml(核心配置,自定义端口/账号)同样放在/webdav/data
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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"]
  1. 启动服务:进入配置目录/webdav/data,执行 docker-compose up -d,显示“Up”即成功。

局域网访问地址 http://nasip:6065,实测思源笔记1000个文件(70MB左右)同步仅需1.5秒;

目录