Obsidian-livesync 多端实时同步

插件演示

image.gif|300

本方案基于  livesync 插件 + 群晖 Docker,需要能访问自己家的 NAS,还要有一个域名~

官方项目地址 官方中文说明

使用快两个月了,丝滑同步,感觉在用云笔记软件~~

一:群晖 Docker 搭建数据库

安装

  • Docker 中搜索 couchdb 并下载

image.webp|300

image.webp|300

  • 双击下载好的映像,进行安装,点击高级设置,进入配置页面

image (1).webp|300

配置填写

  • 常规:勾选自动重新启动(可选)

image (2).webp|300

  • 保存这段官方的代码到文本文档,并重命名为 local.ini
[couchdb]
single_node=true
max_document_size = 50000000

[chttpd]
require_valid_user = true
max_http_request_size = 4294967296
enable_cors = true

[chttpd_auth]
require_valid_user = true
authentication_redirect = /_utils/session.html

[httpd]
WWW-Authenticate = Basic realm="couchdb"
bind_address = 0.0.0.0

[cors]
origins = app://obsidian.md, capacitor://localhost, http://localhost
credentials = true
headers = accept, authorization, content-type, origin, referer
methods = GET,PUT,POST,HEAD,DELETE
max_age = 3600

image (3).webp|300

  • 我一般端口手动设置一下保持和容器一致,不过本地端口应该可以自定义的,未测试~

image (4).webp|300

  • 在环境这里需要手动添加两个配置
    • COUCHDB_PASSWORD 值设置成你的密码
    • COUCHDB_USER 值设置成你的用户名

image (5).webp|300

  • 配置完启动 Docker,访问 http://你的 IP:你的端口 , 例如:http://192.168.31.2:5984
  • 成功的话会显示一串字符,这样就 OK 了~

image (6).webp|300

二:客户端配置填写

  • 接下来进行客户端插件的配置填写
    • URL:就填你刚刚测试的那个网址,记得要加端口号
    • 名字和密码:就是你前面添加到 Docker 中的账号密码
    • 数据库名字:可以随便起一个,自己方便识别就好
  • 填好就可以点击 Test 测试一下,测试成功连接的话会有提示
  • 对了,建议打开 End to End Encryption 也就是端到端加密

image (7).webp|300

  • 然后进行同步的配置,建议直接选 LiveSync 也就是实时同步的预设~ 毕竟装这个插件就是为了这个功能嘛~

image (8).webp|300

  • 也可以同步客户端的设置和其他插件,不过这个是测试功能,可以按需使用~必须为当前设备命名之后才可以开启此功能

image (9).webp|300

  • 建议开启 notify customized ,这样有新的配置的时候,软件会弹出提醒,点击可以进入配置页面,手动选择要同步哪些内容

image (10).webp|300

  • 要注意的一点是,这个插件与其他同步插件包括官方自己的同步是不兼容的,建议关闭其他所有同步设置,不然可能会出问题~

三:添加群晖反代,启用 https,设置外网访问

前面配置完了之后就可以进行同步了,不过现在只能内网访问,体验还不完美,接下来我们配置外网访问

对了,我家里的 NAS 是之前就配置过 DDNS 和对应的域名证书的,如果你还不了解这方面的知识,请自行补课,以后我再单独写这方面的配置教程,这里默认你之前就可以外网访问家里的 NAS,并配置了 SSL 证书

群晖反代设置

  • 打开群晖控制面板,点击 👉 应用程序门户
  • 点击反向代理服务器👉点击添加
  • 然后如下图配置

image (11).webp|300

  • 在路由器后台开启端口转发,这里借用一张网上的图
    • 名称:随便写
    • 协议:只要默认的 TPC 就好了
    • 外部端口:随便填,建议和前面设置的群晖反向代理服务器端口一致
    • 内部 IP 地址:你的 NAS 的地址
    • 内部端口:前面设置的群晖反向代理服务器端口(不是 docker 默认端口 5984 哦)

image (12).webp|300

  • 添加之后保存生效

然后把「客户端配置填写」这个步骤的 URI 地址换成你自己的域名地址和对应访问端口就 OK 啦!

最后

这是一个同步插件,不是备份插件,有群晖的话建议搭配一个 Drive 自动备份,我用这个的主要原因是为了 iOS 和 iPad 客户端的同步,苹果的 iCloud 同步会有问题,如果用的 PC 和安卓的话,感觉直接搭配群晖的 Drive 套件体验更好,还有多版本控制~

本文参考:

不使用第三方软件实现 Obsidian 多平台实时同步 - 经验分享 - Obsidian 中文论坛