Obsidian 使用 Livesync 同步数据

Obsidian 使用 Livesync 同步数据

之前一直使用 icloud 同步我的 obsidian 笔记,同时定期使用 git 备份笔记。但是前段时间因为在 ios 上误删了一个文件夹,导致我的 icloud 桌面端和手机端的笔记不一致。使用过 icloud 同步笔记的同学,想必也都经历过一份文件在桌面端和手机端同步时,出现多个副本的情况。还有一种同步方案是使用 remotely sync,该插件目前的使用体验也是一言难尽。

最近了解了一下 livesync, 试用了一下目前感觉体验非常好。其优点包括:

  • 免费
  • 支持实时同步
  • 卡同步的情况比较少

现在将我配置的过程记录下来分享给大家。整个过程主要参考了:

注意,以下配置过程需要提前准备一张 visa 的信用卡,绑定到 flyio 账号,不会扣费。需要绑定账号信用卡是因为 flyio 担心免费资源被滥用,详情见 Is it free ? Getting Error: We need your payment information to continue! - Questions / Help - Fly.io

1 配置过程

1.1 服务端配置

注册 https://fly.io/ 账号,可以使用 github 账号,然后在本地安装 flyio 命令行,请根据自己的系统在官网找到对于的安装命令

// 安装flyio cli
iwr https://fly.io/install.ps1 -useb | iex

登录账号

// 登录
flyctl auth login 

使用 couchdb 镜像

flyctl launch --image couchdb

注意!如果你的账号没有绑定银行卡,那么此步会让你添加银行卡

PS D:\flyio\couchdb> flyctl launch --image couchdb
Creating app in D:\flyio\couchdb
Using image couchdb
? Choose an app name (leave blank to generate one): couchdb

? Choose an app name (leave blank to generate one): couchdb
automatically selected personal organization: aiyolo
? Choose a region for deployment: Tokyo, Japan (nrt)
Error We need your payment information to continue! Add a credit card or buy credit: https://fly.io/dashboard/aiyolo/billing

再次尝试命令,输入服务器的位置,这个离自己越近越好,其他都选择 No

PS D:\flyio\couchdb> flyctl launch --image couchdb
Creating app in D:\flyio\couchdb
Using image couchdb
? Choose an app name (leave blank to generate one):

? Choose an app name (leave blank to generate one):
automatically seleolo
? Choose a region for deployment: Hong Kong, Hong Kong (hkg)
Created app frosty-glitter-2627 in organization personal
Admin URL: https://fly.io/apps/frosty-glitter-2627
Hostname: frosty-glitter-2627.fly.dev
? Would you like to set up a Postgresql database now? No
? Would you like to set up an Upstash Redis database now? No
Wrote config file fly.toml
? Would you like to deploy now? No
Your app is ready! Deploy with `flyctl deploy`

创建卷,其中 --region 后面填刚才选择的服务器位置,–size 后面填容器卷的大小,比如 2 表示 2g,注意!flyio 免费提供的空间为 3g

PS D:\flyio\couchdb> fly volumes create --region hkg couchdata --size 2
        ID: vol_x915grndpj14n70q
      Name: couchdata
       App: frosty-glitter-2627
    Region: hkg
      Zone: be08
   Size GB: 2
 Encrypted: true
Created at: 09 Feb 23 02:59 UTC

打开文件夹下的 fly.toml,对照下面内容修改, 主要是 env, mounts, experimental, services. ports 这几个地方。
注意!最好添加一个端口号为 5984 的服务端口,不然同步容易发生中断

app = "purple-wind-1262"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[build]
  image = "couchdb"

[env]
  COUCHDB_USER="your_name" ## 修改

## 修改
[mounts]
  source="couchdata"
  destination="/opt/couchdb/data"

[experimental]
  allowed_public_ports=[] ## 修改
  auto_rollback = true

[[services]]
  http_checks = []
  internal_port = 5984 ## 修改
  processes = ["app"]
  protocol = "tcp"
  script_checks = []
  [services.concurrency]
    hard_limit = 25
    soft_limit = 20
    type = "connections"

  [[services.ports]]
    force_https = true
    handlers = ["http"]
    port = 80

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 443
    
## 修改
  [[services.ports]]
    handlers = ["tls", "http"]
    port = 5984

  [[services.tcp_checks]]
    grace_period = "1s"
    interval = "15s"
    restart_limit = 0
    timeout = "2s"

设置密码

flyctl secrets set COUCHDB_PASSWORD=your_password

部署

flyctl deploy

如果报错了,执行以下命令之后,再重新部署

fly ips allocate-v4

如果以上都顺利的话,那么 deploy 之后,命令行能正常退出,然后执行以下命令,在浏览器打开 app 管理端

flyclt open

https://XXX.dev 后面加上 /_utils,使用刚才配置的用户名和密码登录到管理界面,

  • 在菜单第二项里找到 Configure a Single Node 并点击
  • 在菜单第四项里找到 CORS , 点击 enable,并在下面选择 all damains

至此服务端的配置就完成了

1.2 桌面端配置

首先下载在 obsidian 插件商店搜索 livesync 插件。第一次配置时,我们在 setup wizard 中直接点击下面选项即可

然后在 remote database configuration 中,依次填写服务端的配置信息,database 可以随便取个名字,它会自动在云端创建

填写完后,点击 test 不出意外会显示 connected to obsidian,点击 check 之后,出现的 ? 后点击 fix 直到全部变成对钩

然后开启在编辑器内显示同步进度(show status inside editors),这样做方便在手机端观察同步进度

最后一步,点击 live sync

不出意外的话,状态栏的同步进度条开始动了, 点击左侧的按钮可以看到同步状态,像我这样配置日志里不会显示请求连接失败,否则的话可能会卡同步了

1.3 手机端配置

在桌面端的 setup wizzard 点击 copy setup uri,然后在弹出的对话框中输入任意密码,输入完后把生成的 uri 粘贴到手机端

提前手机端下载 livesync,并且启用,在浏览器中输入生成的 uri,会跳转到 obsidian

在弹出的对话框中选择导入桌面端的 livesync 配置即可完成配置。

此时返回主界面,应该可以看到同步进度了

至此整个过程完成。

唯一比较遗憾的大概是云端的存储容量有限,如果有一个 nas,在 nas 上配置 couchdb,那就更好了。

2 参考资料

  1. Fly. io for self hosting CouchDB · Discussion #85 · vrtmrz/obsidian-livesync (github. com)
  2. Obsidian 免费的实时同步服务 (irithys.com)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值