1. 为什么我最终选择了LiveSync,而不是靠iCloud或Git同步
先聊点实际的。玩Obsidian的人迟早会撞上“多端同步”这道墙,而且大概率会经历一段非常折腾的时期。我自己就是从U盘拷文件、网盘手动上传、Git仓库推送、iCloud同步一路走过来的,每换一种方案都会发现新痛点,直到最后认真把LiveSync插件调通,才觉得这东西终于能安稳用了。
简单说,Obsidian LiveSync是一个基于自建数据库的同步插件,核心逻辑是把你的笔记内容实时同步到你自己的服务端,再通过服务端把变更分发到手机、平板、另一台电脑等多个客户端。它解决的痛点是:极低延迟、无需手动提交、不怕文件冲突、全平台覆盖,最关键的是数据始终在你自己的服务器上,不依赖任何第三方笔记同步服务。
这篇东西适合谁看?如果你正在用或准备用Obsidian做知识库,而且你手里至少有一台服务器(云主机、VPS、家里NAS虚拟出来的Linux都行),同时又不想把笔记托管到别人的云盘上,那这篇配置记录应该能帮你省下大量试错时间。
我现在的实际环境是:主力Windows笔记本、一台常年开机的Linux服务器、iPhone和一部Android备用机,全部通过LiveSync实时同步同一个库,延迟基本在1秒以内。这篇文章我就按自己实际蹚过的路,把整个配置流程、踩过的坑、以及很多文档里根本没写明白的细节,从头到尾捋一遍。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 先搞清楚LiveSync的工作原理,否则后面全是黑盒操作
2.1 LiveSync不是加密网盘,也不是文件传输工具
很多人第一次看到LiveSync的介绍,会误以为它就是把Obsidian的库里文件同步到远端,像坚果云那样。其实不太一样。LiveSync的同步对象是“你的操作变更记录”,而不是简单的文件覆盖。
举个例子。你在桌面上改了一个笔记里的某一行字,保存之后,Obsidian会把这次改动生成一个包含具体修改路径和内容的变更事件。LiveSync插件会把这个事件实时推送到你在服务器上部署的同步服务端(默认是CouchDB),服务端再把事件广播给当前在线的其他设备。其他设备收到事件后,在自己本地把同样的修改应用一遍。
这意味着什么?意味着它几乎不产生“整个文件上传下载”的流量,同步的是变化量,所以速度快、流量小,而且天然支持多人同时编辑同一篇笔记而不产生传统意义上的覆盖冲突。这个机制很像代码里的增量同步,只是它作用在笔记文本上。
用生活类比的话,传统网盘同步像是每次你把整本笔记本复印一份送到另一个办公室;而LiveSync是每次你改一行字,就把这一行字用传真发给其他办公室,由对方自己贴到对应页面上。前者简单但笨重,后者轻快但需要所有办公室保持相同的笔记本底稿。
这正是LiveSync能在手机和电脑之间做到近乎实时同步的核心原因。但也正因为这种机制,它对服务端的稳定性、客户端本地库的初始化要求都很高。如果本地库一开始就不完整,或者服务端数据异常,后面同步时可能出现你意想不到的“幽灵修改”或“回滚”。
2.2 为什么方案选型:CouchDB + 自带Caddy,而不是MinIO或WebDAV
LiveSync的配置文件里,可选的同步服务端有不少,最常见的是CouchDB,也有人用MinIO对象存储或者支持WebDAV的网盘。我直接说结论:普通自建用户,优先选CouchDB。
原因有三点。第一,CouchDB天生就是为“多主复制”设计的数据库,它允许离线设备稍后重连时将本地变更合并上去,不会因为离线时间长了就判死或丢数据。第二,LiveSync对CouchDB的适配最完善,很多高级功能比如按前缀过滤同步、端到端加密、结构化导出备份,都与CouchDB深度绑定。第三,CouchDB的部署在Docker里非常成熟,内存占用也不算离谱,1GB内存的VPS完全可以跑得动。
我当时也试过用MinIO,因为它看起来像是“文件存储桶”,似乎更贴合笔记文件这种非结构化数据。但实际体验下来,MinIO在增量同步、变更侦测、冲突处理这些环节上都不如CouchDB顺滑,尤其在多端并发修改同一篇笔记的场景下,MinIO模式很容易产生文件版本分裂,最后还得手工合并,非常痛苦。
至于WebDAV方案,配置虽然最简单,但基本退化成“准实时同步”,而且对弱网环境的容忍度很低,手机锁屏后经常要很久才能触发同步。如果你对同步延迟不敏感,只求能备份,那WebDAV也够用;但如果你想像我一样,手机掏出来打开笔记时内容已经是最新状态,那还是要上CouchDB。
2.3 端到端加密一定要开,不开等于裸奔
LiveSync支持端到端加密,意思是在你的设备上把笔记内容加密后再传给服务端,服务端上存的是密文。即使服务器被入侵,甚至数据库被拖走,对方看到的也只是乱码,无法还原出你的笔记正文。
这里有个关键点:端到端加密的密钥是存在你本地的Obsidian配置里的,不是存在服务器上的。所以你每配置一台新设备,都需要把加密密码或者密钥文件导入进去。如果你忘了密码,服务器上所有密文都无法解密,等于笔记全丢,没有任何后门可走。
