Obsidian Self-hosted LiveSync 部署记录

Obsidian Self-hosted LiveSync 部署记录

__

环境:飞牛OS (fnOS) + 1Panel + Docker + Nginx Proxy Manager 2.15.1 目标:自托管 CouchDB 实现多设备 Obsidian 笔记实时同步 访问地址https://obsidian.livesync:30443


一、方案说明

LiveSync 的工作原理

本地 Obsidian(Windows/Mac/手机)
    ↕ HTTPS + WebSocket
Self-hosted LiveSync(CouchDB)← 部署在 fnOS 上
    ↕
其他设备的 Obsidian

CouchDB 作为中间同步节点,所有设备的笔记变更实时双向同步。

同步 vs 备份的区别

行为

同步(LiveSync)

备份

本地新建文件

同步到服务端 ✅

同步到服务端 ✅

本地修改文件

同步到服务端 ✅

同步到服务端 ✅

本地删除文件

服务端也删除 ❗

服务端仍保留 ✅

LiveSync 是同步语义,本地误删会同步到服务端。但 CouchDB 内置版本历史,可以找回任意历史版本(见第四章)。

本地 vault 文件夹里的 .md 文件始终保留完整副本,不会变成"仅云端引用"。

推荐搭配使用

LiveSync          → 多设备实时同步(主要用途)
fnOS 定时快照     → 对 CouchDB 数据目录定期备份(防误删兜底)

二、服务端部署(1Panel / fnOS)

2.1 部署 CouchDB 容器

在 1Panel 应用商店搜索 obsidian-livesync,或手动创建 docker-compose.yml

services:
  couchdb:
    image: couchdb:latest
    container_name: obsidian-livesync
    environment:
      - COUCHDB_USER=your_user        # 替换为你的用户名
      - COUCHDB_PASSWORD=your_password  # 替换为你的密码
    volumes:
      - ./data:/opt/couchdb/data
    ports:
      - 5984:5984
    restart: unless-stopped

2.2 NPM 配置反向代理

在 Nginx Proxy Manager 新建 Proxy Host:

字段

Domain Names

obsidian.livesync

Forward Scheme

http

Forward Host

容器名(如 obsidian-livesync

Forward Port

5984

WebSocket Support

✅ 必须开启

SSL Certificate

已有的自签名证书(含 DNS SAN)

注意:NPM 监听在非标准端口 30443(因飞牛OS 占用了 443),最终访问地址为 https://obsidian.livesync:30443

2.3 初始化 CouchDB

浏览器访问 https://obsidian.livesync:30443/_utils,进入 Fauxton 管理界面:

  1. 使用部署时设置的账号密码登录

  2. 点击 Create Database,创建同步数据库(如 lyymoobs

  3. 确认 _users 系统库存在

  4. 进入 Configuration → 确认 CORS 已启用(LiveSync 需要跨域访问)


三、客户端配置(Windows 本地 Obsidian)

3.1 添加 hosts 解析

用管理员权限编辑 C:\Windows\System32\drivers\etc\hosts,添加:

192.168.5.224   obsidian.livesync

3.2 导入自签名证书(关键步骤,必做)

Obsidian 桌面客户端使用系统证书库,自签名证书必须手动导入,否则插件会报 ERR_CERT_AUTHORITY_INVALID 错误。

方法一:双击安装(图形界面)

双击 obsidian-local.crt
→ 安装证书
→ 存储位置:本地计算机
→ 将所有证书放入下列存储
→ 浏览 → 受信任的根证书颁发机构
→ 确定 → 完成

方法二:PowerShell(管理员)

Import-Certificate -FilePath "C:\path\to\obsidian-local.crt" `
  -CertStoreLocation Cert:\LocalMachine\Root

⚠️ 证书导入后必须完全退出并重启 Obsidian,否则插件仍然读取旧的证书状态,连接依然失败。

3.3 安装 Self-hosted LiveSync 插件

Obsidian → 设置 → 第三方插件 → 关闭安全模式 → 浏览
→ 搜索 Self-hosted LiveSync → 安装 → 启用

3.4 配置插件连接

进入插件设置,填写以下信息:

Remote Database URI : https://obsidian.livesync:30443/
Database Name       : lyymoobs(与服务端创建的库名一致)
Username            : your_user
Password            : your_password

点击 Test Database Connection,显示绿色成功提示后保存配置。


四、历史版本查看与恢复

LiveSync 利用 CouchDB 的文档版本机制,自动保存每次笔记变更的历史版本,无需额外插件。

4.1 查看历史版本

方法一:命令面板

Ctrl + P → 输入 Show history → 选择 LiveSync: Show history of this document

方法二:插件图标

左侧边栏找到 LiveSync 图标 → 点击 Show History

操作后会弹出当前笔记的所有历史版本列表,显示每次变更的时间戳和变更内容对比。

4.2 恢复历史版本

  1. 在历史版本列表中点击目标版本

  2. 预览确认内容无误

  3. 点击 Restore 按钮恢复到该版本

  4. 当前内容会被替换,恢复操作本身也会作为新版本记录

提示:恢复操作是安全的,它会把"恢复"这个动作也作为一个新版本写入历史,不会丢失任何记录。

4.3 版本清理

CouchDB 长期运行后历史版本会占用较多空间,可在插件设置中配置:

Settings → History → Limit number of revisions

建议保留 50~100 个版本,足够日常找回误删内容。


五、常见问题

ERR_CERT_AUTHORITY_INVALID

现象:插件报错,浏览器直接访问正常。

原因:Obsidian 桌面客户端走系统证书库,不能像浏览器一样手动信任证书。

解决:按第三章 3.2 步骤将自签名证书导入系统受信任根证书库,然后重启 Obsidian。


连接成功但不同步

检查以下几点:

  • NPM 的 WebSocket Support 是否开启

  • CouchDB 的 CORS 配置是否允许跨域

  • 插件的 Sync Mode 是否设置为 LiveSync(实时)而非 Periodic(定时)


多设备配置

每台设备重复执行客户端步骤(3.1 → 3.4),连接同一个 CouchDB 数据库即可实现多设备实时同步。手机端(iOS/Android)的 Obsidian 同样支持此插件,配置方式相同。


六、备份建议

LiveSync 解决同步问题,但建议同时在 1Panel 配置定时备份任务,对 CouchDB 数据目录进行快照:

备份路径:./data(CouchDB 数据目录)
备份频率:每天一次
保留份数:7 天

这样即使发生大规模误删或数据库损坏,也能从备份中完整恢复。

Obsidian Docker 容器浏览器访问完整部署记录 2026-06-22
fnOS 1.2.0xx 升级踩坑记录 2026-07-02

评论区