一、私有Docker搭建WebDAV服务

从我的Github上下载WebDAV的Docker配置文件:

1
git clone https://github.com/winsoft666/docker-webdev

根据docker-compose.yml.sample文件来新建docker-compose.yml文件:

1
cp docker-compose.yml.sample docker-compose.yml

修改docker-compose.yml文件中的相应字段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'
services:
webdav:
build: .
restart: always
ports:
- "9443:443"
- "9080:80"
environment:
SERVER_NAME: www.xxx.com,xxx.com
AUTH_TYPE: Basic
SSL_CERT: selfsigned
volumes:
- /webdav-server:/var/lib/dav
- /root/webdav/user.passwd:/user.passwd

字段含义如下:

  • ports为容器和宿主机器的端口映射,冒号前面的端口可以自定义;
  • SERVER_NAME为服务器绑定的域名,如果没有绑定域名,可以直接写服务器的外网IP。
  • Joplin只支持Basic验证模式;

/root/webdav/user.passwd为WebDAV的用户名和密码存储文件,存在在宿主机器上,通过映射的方式映射到容器中,生成步骤如下:

1
2
3
4
5
6
# 在CentOS7系统上安装httpd
yum -y install httpd

cd /root/webdav/
touch user.passwd
htpasswd -B user.passwd zhanghua

docker-compose.yml文件所在目录,执行:

1
docker-compose up -d

上面命令会部署并启动WebDAV服务。

二、测试WebDAV服务

在浏览器中打开http://xxx.com:9080,会弹出用户名和密码输入框,输入使用htpasswd 命令创建的用户和密码,点击登录,如果可以登录进去,说明服务搭建成功。

三、新建Joplin数据目录

在宿主机器的/webdav-server/data目录下,新建子目录joplin。因为/webdav-server/目录已经映射到容器中,所以容器可以直接访问。

重启Docker:

1
2
3
docker ps -a # 查看容器ID
docker stop XXX
docker start XXX

从Joplin官网(https://joplinapp.org/)下载Joplin客户端,在“同步”选项中设置WebDAV,如图所示:

设置完成之后,点击“检查同步配置”,提示“成功”则说明配置正确。