
Obsidian 多端同步 -LiveSync
我的同步场景
同步节点
- 服务端:NAS
- 客户端:PC
- 客户端:手机
- 客户端:Chrome 浏览器(弱需求)
同步需求
- 手机随时记录闪念,服务端能自动同步;
- PC 新增/更新笔记,服务端能自动同步;
- 手机和 PC 有冲突时能提示解决;
- 同步数据要求支持端到端加密,保证数据安全;
- 同步服务能稳定运行,不能占用手机太多资源
踩过的坑
之前的折腾:
- 尝试
sycthing也有上述问题,很不稳定。 - 尝试
mgit,使用纯 git 同步,但是手机端mgit经常挂没法同步; - 尝试过
webdav,PC 同步到 NAS 的 webdav,然后手机使用autosync同步,这个方式是最简单粗暴,但是不知道自己当时遇到啥问题,也是放弃了;
目前 livesync 虽然目前在用,勉强满足需求,但是很多坑:
- 手机端偶尔会和服务器不一致,得重新同步才能恢复,我笔记大概有 500M,手机全刷一遍太慢了,只能到有 wifi 的地方才能干;
- couchdb 服务挂过几次导致没法同步;
- 有时手机随便点了下,linter 格式化了,失误覆盖了 PC 端的修改;
具体 livesync 安装过程分享给大家,有需要的可以尝试下,搞不好就很适合少年你的体质。
环境准备
依赖环境
- couchdb 服务:一个数据库服务软件,一款基于 JSON 文档的分布式数据库;
- obsidian live sync 插件:obsidian 插件,注重安全,支持端到端加密;
- 假设你有一个 NAS/ECS,并申请了公网域名:示例域名为:localhost
安装 couchdb
使用 docker-compose 部署
version: "3.2"
services:
couchdb:
image: couchdb
container_name: obsidian-livesync
environment:
- COUCHDB_USER=admin
- COUCHDB_PASSWORD=yourpassword
volumes:
- /mnt/mind/data/couchdb/data:/opt/couchdb/data
- /mnt/mind/data/couchdb/local.ini:/opt/couchdb/etc/local.ini
ports:
- 5984:5984
restart: unless-stopped数据库配置:local.ini
[couchdb]
single_node=true
max_document_size = 50000000
[chttpd]
require_valid_user = true
max_http_request_size = 4294967296
[chttpd_auth]
require_valid_user = true
authentication_redirect = /_utils/session.html
[httpd]
WWW-Authenticate = Basic realm="couchdb"
enable_cors = true
[cors]
origins = app://obsidian.md,capacitor://localhost,http://localhost,http://你的域名
credentials = true
headers = accept, authorization, content-type, origin, referer
methods = GET, PUT, POST, HEAD, DELETE
max_age = 3600- 访问 couchdb 后台页:
http://localhost:5984/_utils, 输入帐号 (admin) 密码 (yourpassword) 后进入管理页面 - 新建数据库,比如:obsidian
- 启用 CORS: http://localhost:5984/_utils/#_config/nonode@nohost/cors
安装 obsidian-livesync 插件
安装 obsidian-livesync 插件:下载地址
PC 端配置
配置同步服务器:填写 URI:http://localhost:5984,用户名,密码,执行 test 后无误,apply 即可。
为了安全,开启端到端加密,千万记好加密的密码,不然数据谁都解不开。
这样数据会用这个 key 加密后传输到云端,服务器被攻击,别人拿到了你的数据也没有办法。
同步策略配置
配置好后,可以在 Setup 页,
Copy the current settings to Setup URI,输入密码加密分享 URI。

手机端配置
在手机端也安装 livesync 插件

点击 Connect with Setup URI,输入刚才复制的 URI,就可以开启同步了。


📌 总结 本文介绍了 obsidian 的 livesync 来实现多端同步,配置比较简单,但是这个插件有很多特性,也适合深入使用,比如:livesync 新出的点对点 P2P Replicator 模式(点对点同步架构)就等着我去折腾
最近还了解到 trilium知识库-数据同步测试 的方案,生命不息,折腾不止。相信我总能从开源社区里面找到一条适合自己的方案。
