标签归档:obsidian

Obsidian 多设备同步方案整理

同步方案大致有下面这几种:

  • obsidian-livesync(插件):自托管在线同步,支持实时同步,社区活跃,使用自建 CouchDB 数据库存放数据;
  • remotely-save(插件):支持S3 (Amazon S3/Cloudflare R2/Backblaze B2/…)、Dropbox、webdav (NextCloud/InfiniCLOUD/Synology/…)、OneDrive 等数据源。
  • obsidian git(插件):集成 git,主要是 git 做版本管理的,用起来不是很方便。
  • obsidian-sync(官方同步):官方方案,无需多言,每月4$。

对比表格

claude 对以上方案的对比如下表:

特性 官方同步 LiveSync Remotely Save Git
价格 $4/月 免费 免费 免费
配置难度 简单 较复杂 中等 复杂
实时同步 × ×
版本历史 ×
端到端加密 × ×
选择性同步 ×
移动端支持 完善 一般 一般 较差
稳定性
技术要求
自建服务器 × ×
冲突处理 自动 自动 手动 手动

注:

  • ✓ 表示支持
  • × 表示不支持
  • 评价标准为:高/中/低 或 完善/一般/较差

Claude 3.5 Sonnet 回答,大部分正确,供参考。

obsidian-livesync 方案

我目前在使用 obsidian-livesync ,因为可以自托管,无需支付 S3 的按量费用,用起来速度也很不错,约 4k 条笔记约1min上下。配置一次后生成 url,在其他设备只需 安装 obsidian、安装 obsidian-livesync 插件、再填写 url 即可,很方便。

实时同步体验也很好。

建议按照官方文档一步一步进行即可。

以下贴出我部署用到的 compose.yaml 供参考,注意替换其中的密码

version: '3.8'

services:
  couchdb:
    image: couchdb:3.4.2
    container_name: couchdb-for-ols
    environment:
      - COUCHDB_USER=admin
      - COUCHDB_PASSWORD=xxxxxxxxx
        #- hostname=ocdb.xxxx.com
    restart: unless-stopped
    volumes:
      - ./data/couchdb-data:/opt/couchdb/data
      - ./data/couchdb-etc:/opt/couchdb/etc/local.d
    ports:
      - "5984:5984"

执行后执行以下命令初始化数据库:

export hostname=localhost:5984
export username=admin     #Please change as you like.
export password=xxxxxxxxx #Please change as you like
curl -s https://raw.githubusercontent.com/vrtmrz/obsidian-livesync/main/utils/couchdb/couchdb-init.sh | bash

References

mermaid.js 效果相册

mermaid 是一款 javascript 库,能够轻而易举地通过文本代码绘图。

作为普通用户,将其理解为一种绘图的语言即可,集成它之后就可以在 markdown 的轻松插入特定语法编写的各类图示了,而且不需要像 plantuml 一样需要外部服务器,目前 notionobsidian 等都已原生支持该特性,许多博客主题也支持该语法。

使用它,可以轻松在各类 md 编辑器中绘图,方便修改和传播。

具体语法请查看 mermaid 官网,本文展示一些在互联网发现的比较优秀的示例:

网络拓扑图

graph TD
 linkStyle default interpolate basis
 wan1[
<center>DSL 100/10 Mb<br><br>10.100.102.1</center>]---router{<center>EdgeRouter-X<br><br>10.20.30.1</center>}
 ip((
<center><br>IP<br><br></center>))-.-router
 dns((
<center><br>DNS<br><br></center>))-.-router
 wan2[
<center>LTE 50/20 Mb<br><br>192.168.1.1</center>]---router
 router---|100Mb|ap[
<center>RT-AC1200<br><br>10.20.30.3</center>]
 router---|1Gb|pc(
<center>PC<br><br>10.20.30.190</center>)
 router---|1Gb|switch[
<center>TL-SG105E<br><br>10.20.30.2</center>]
 subgraph red1
 ap-.-cam1(
<center>Camera<br><br>10.20.30.171</center>)
 ap-.-cam2(
<center>Camera<br><br>10.20.30.172</center>)
 ap-.-phone(
<center>Phone<br><br>10.20.30.191</center>)
 ap-.-ir(
<center>IR<br><br>10.20.30.180</center>)
 end
 subgraph red2
 switch---|100Mb|pi1(
<center>RPi 3B<br><br>10.20.30.150</center>)
 switch---|1Gb|pi2(
<center>RPi 3B+<br><br>10.20.30.151</center>)
 switch---|100Mb|nvr(
<center>NVR<br><br>10.20.30.170</center>)
 switch---|1Gb|laptop(
<center>Laptop<br><br>10.20.30.192</center>)
 end

参考文献