Obsidian 多裝置同步最終版

最近慢慢把筆記主力改到 Obsidian,主要的原因還是最近的 AI 浪潮,幻想以後可以用 CLI 的 AI 工具來快速處理這些筆記。但 Obsidian 有個很大的麻煩是不同裝置間的同步,如果要省事,去訂閱官方的 Obsidian Sync 就 ok,不過我就是想省錢嘛!就得想辦法解決同步的問題。這篇就整理一下我最近試用了一些 Obsidian 同步方案的過程。

NAS 原生方案看起來合理,手機卻接不上

我的想法是把所有筆記檔都放在 NAS 上,最理想的方案應該是透過 NAS 本身的網路硬碟軟體 Synology Drive,所有裝置都直接透過 NAS 官方的 app 來同步資料。這樣看起來最單純,也不用另外搭一堆服務。

但實際碰到的第一個問題,就是 Android 手機沒辦法跨 app 存取資料。也就是說,Obsidian 並不能把 Synology Drive 裡的那份資料當作自己的 vault 直接使用,還是得另外找一層適合的同步方式。

第一個試的是 Self-hosted LiveSync

最開始試的是 Self-hosted LiveSync 這個 plugin,它需要在 NAS 上架 CouchDB,讓 Obsidian 直接透過外掛做同步。

它最大的優點就是即時。以體感來說,這種同步方式真的很接近「你改我也立刻改」,如果只看同步速度,其實蠻吸引人的。

但後來遇到其他問題讓整體使用感受不夠穩,出現 conflict,甚至一度讓我覺得差點把日記搞壞,實在可怕。同步再快都沒有穩定重要,所以最後還是決定換方向。

第二步改成 Remotely Save + WebDAV

下一步我改用 Remotely Save 這個 plugin,和 NAS 上的資料同步是透過 WebDAV。換這個方法考慮的是 CouchDB 的大型檔案的同步效能不那麼好,但這個方法其實不即時,我設定的是每 10 分鐘同步一次,因為我並不需要那麼即時,不會同時在手機又在電腦上處理筆記,只要在不同裝置之間能完整把檔案帶過去,其實就夠了。

真正卡關的還是手機背景同步

但用到後面就發現,真正麻煩的還是手機。

我遇到的狀況很明確:手機上的 Obsidian 同步不夠穩,尤其是打完字之後如果很快把 app 切到背景,定時同步基本上就不太會照預期運作。Remotely Save 設定了定時同步也沒用,只要 app 不在前景,就無法同步。變成我在手機上每次寫完一則筆記,或是剛開 app 時,都要強制手動同步,非常麻煩,而且不確定到底是不是已經同步到最新版本。

這個問題其實是手機系統本來就不太讓這類 app 在背景穩定執行同步工作,不管怎麼關閉省電模式還是改權限之類的,都沒辦法讓手機 Obsidian app 達成穩定的背景同步。

最後改成 Syncthing,目標就是繞開這個限制

最後嘗試的方案,是透過 Syncthing,因為手機上它可以穩定背景同步,也可以跨 app 讓 Obsidian 打開 vault。這樣的思路和前面不太一樣,重點不再是讓 Obsidian 外掛自己負責同步,而是把同步這件事交給系統外部的專門工具處理。不過有點麻煩的是要在 NAS、手機、Mac 額外安裝 Syncthing 軟體,設定雖不難,但也花了一些時間排除障礙。

實際裝起來之後,效果比預期好很多。手機端最麻煩的同步問題被解掉了;Mac 端一起接上之後,整體同步速度也不錯,通常幾秒內就會到,即時性已十分夠用。

Windows 端反而繼續保留 WebDAV

至於醫院的 Windows 電腦,我最後反而沒有硬要統一成 Syncthing。原因很現實,那種環境未必有權限安裝或穩定配置 Syncthing,硬要做反而可能增加麻煩。

所以 Windows 端目前還是保留用 Remotely Save 透過 WebDAV 和 NAS 同步。這樣做雖然沒有手機和 Mac 那麼即時,但對那台機器來說已經夠用,因為 Windows 上的 Obsidian app 如果不關掉,背景同步其實是可以正常運作的。

保留 WebDAV 這條路對未來再改回 iOS 手機可能也有用途,資料顯示 iOS 並無法讓 Syncthing 完全自動且持續的背景同步。

也就是說,最後並不是全平台統一單一方案,而是分成兩條線:

  1. Android / MacSyncthing
  2. Windows / iOSWebDAV

這樣看起來可能不夠純粹,但配合各平台的限制,就先將就用用,起碼現在基本上已實現把筆記軟體轉換到 Obsidian 且能在各平台穩定同步。


Leave a Reply