苹果系统上很多APP支持跨设备同步,实现方式不一,有的是用iCloud,有的是用自建的同步服务器,但速度不是太理想,延迟较高。
就拿我常用的OmniFoucs来说,用的是Omni免费的同步服务,同步一次要几十秒,经常出现早上在电脑改了状态,手机上晚上还没同步过来的情况。好在OmniFoucs支持自定义的WebDav服务,加之本人有台国内服务器,就自建了一个WebDav服务,迁移之后基本上秒同步,爽!
后续把Notability上的文档也备份到了该服务器里。
服务器操作系统:Centos7.8
Linux下可以用Nginx或Apache来部署WebDav服务,也可以用单独的组件。
这里用的是一个Go语言写的WebDAV Server,Github 项目地址:https://github.com/hacdias/webdav
部署流程如下。
1. 下载配置WebDav
在/usr/local
下新建webdav
目录。
下载并解压到指定目录,当前最新版本为4.1.0
cd /usr/local/webdav
wget https://github.com/hacdias/webdav/releases/download/v4.1.0/linux-amd64-webdav.tar.gz
tar -xvzf linux-amd64-webdav.tar.gz
在/usr/local/webdav
目录下新建一个配置文件config.yaml
,内容如下
# Server related settings
address: 0.0.0.0
port: 15108
auth: true
tls: false
cert: cert.pem
key: key.pem
# Default user settings (will be merged)
scope: .
modify: true
rules: []
users:
- username: user1
password: password1
scope: /data/webdav/dir1
对外服务的端口号为15108
,需要在安全组或防火墙里放开。
目录/data/webdav/dir1
用于存储user1
的文件,需要手动创建。
如果有多个用户,则遵循yaml
的文件规范,按user1
的格式添加到下面即可。
2. 添加服务
在/usr/lib/systemd/system/
下新建文件webdav.service
,内容如下
[Unit]
Description=WebDAV server
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/webdav/webdav --config /usr/local/webdav/config.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.target
3. 启动WebDav服务
systemctl daemon-reload
systemctl enable webdav
systemctl start webdav
查看服务状态
systemctl status webdav
输出类似如下
● webdav.service - WebDAV server
Loaded: loaded (/usr/lib/systemd/system/webdav.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-08-31 17:34:08 CST; 20h ago
Main PID: 10032 (webdav)
CGroup: /system.slice/webdav.service
└─10032 /usr/local/webdav/webdav --config /usr/local/webdav/config.yaml
至此,WebDav服务已经部署完成。