为什么你需要一个私有云笔记同步方案?
对于重度笔记使用者,每天在电脑、手机、平板之间切换,常会遇到同步的烦恼。用过一些大厂的云服务,速度时快时慢,且所有数据存储在别人的服务器上,存在隐私顾虑。自建同步服务器的优势在于数据完全私有,速度取决于服务器带宽,一次部署,终身免费使用。
在众多自建方案中,WebDAV 协议因其简单、通用、资源消耗低,成为了个人用户和小团队的理想选择。而 Docker 的容器化技术,让部署 WebDAV 服务变得简单,避免了复杂的系统环境配置。
部署前准备:理清思路与备齐工具
整个方案的核心是:在一台能控制的服务器上,用 Docker 运行一个 WebDAV 服务容器,然后让所有的 Joplin 客户端通过 WebDAV 协议连接到这个容器进行数据同步。
需要准备以下东西:
- 一台服务器:可以是主流云服务商购买的 VPS,也可以是家里常年开机的 NAS 或旧电脑改造的服务器。如果需要在外网访问,需要拥有公网 IP 的服务器。
- 基础软件环境:服务器上需要安装好 Docker 和 Docker Compose。
- Joplin 客户端:在需要同步的每一台设备上提前下载并安装好客户端。
5 分钟在服务器上启动 WebDAV 服务
登录到服务器进行操作。本文假设使用 Linux 系统(如 Ubuntu 22.04),并且已经以具有 sudo 权限的用户登录。
3.1 创建有序的文件存储结构
良好的习惯从目录规划开始。建议在 /opt 或 /data 下为每个服务创建独立的目录。
# 创建一个总的应用目录,比如叫 services
sudo mkdir -p /data/services
# 进入该目录,并为我们的 Joplin WebDAV 服务创建一个子目录
cd /data/services
sudo mkdir joplin-webdav
cd joplin-webdav
# 在这个目录下,我们再创建两个子目录:config 存放配置,data 存放笔记数据
sudo mkdir config data
这样,目录结构看起来就是 /data/services/joplin-webdav/{config, data},非常清晰。data 目录将会被映射到 Docker 容器内部,所有的笔记文件最终都会物理存储在这个服务器的目录下。
3.2 编写核心的 docker-compose.yml 配置
Docker Compose 允许我们用一份 YAML 文件定义整个服务,包括镜像、端口、环境变量、数据卷等,管理起来比一堆 docker run 命令更简洁。

