<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sync on OHTLY Blog</title>
    <link>https://blog.ohtly.com/tags/sync/</link>
    <description>Recent content in Sync on OHTLY Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Thu, 25 Jun 2026 14:29:05 +0800</lastBuildDate>
    <atom:link href="https://blog.ohtly.com/tags/sync/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>不依赖插件将 Obsidian 笔记直写 CouchDB 实现跨设备同步</title>
      <link>https://blog.ohtly.com/posts/2026-06-25-write-obsidian-notes-to-couchdb-directly/</link>
      <pubDate>Thu, 25 Jun 2026 14:29:05 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-25-write-obsidian-notes-to-couchdb-directly/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;&#xA;  背景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e8%83%8c%e6%99%af&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;我的笔记托管在 Obsidian vault 中，通过 Self-hosted LiveSync 插件 + CouchDB 实现多端同步。&lt;/p&gt;&#xA;&lt;p&gt;问题是：我操作远端节点（Mac mini）上的 Obsidian vault 时，如果直接写文件到磁盘，Obsidian LiveSync 不会触发同步——除非 Obsidian 进程处于激活状态。Obsidian CLI 能绕过这个问题，但 CLI 依赖 Obsidian 进程的 Unix socket，存在连接挂死的风险（实测遇到过）。&lt;/p&gt;&#xA;&lt;p&gt;所以需要一条不依赖 Obsidian 进程的同步路径：&lt;strong&gt;直接把笔记内容推送到 CouchDB，让其他节点上的 LiveSync 插件自动拉取&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;couchdb-中的-livesync-存储结构&#34;&gt;&#xA;  CouchDB 中的 LiveSync 存储结构&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#couchdb-%e4%b8%ad%e7%9a%84-livesync-%e5%ad%98%e5%82%a8%e7%bb%93%e6%9e%84&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;LiveSync 在 CouchDB 中的文档结构如下：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;plain&lt;/code&gt; 文档&lt;/strong&gt; — 索引文件，记录笔记的元数据和分片引用&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;leaf&lt;/code&gt; 文档&lt;/strong&gt; — 存储笔记内容的分片&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;一条 &amp;ldquo;hello world&amp;rdquo; 笔记在数据库里是这样的：&lt;/p&gt;&#xA;&lt;p&gt;plain 文档：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;inbox/hello-world.md&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;path&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Inbox/hello-world.md&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;plain&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;children&amp;#34;&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;h:xxxxxxxxxxxx&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;h:yyyyyyyyyyyy&amp;#34;&lt;/span&gt;],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;ctime&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;1782357049136&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;mtime&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;1782357049137&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;size&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;143&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;eden&amp;#34;&lt;/span&gt;: {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;leaf 文档：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
