📓 memotty

Tailscale × SyncthingによるObsidian双方向リアルタイム同期環境

概要 #

PC(自宅)とAndroidスマホ(出先)のObsidianの保管庫(Vault)を、Gitやクラウドストレージを介さず、Tailscale(仮想LAN)とSyncthing(P2Pファイル同期)を使ってダイレクトにリアルタイム同期する環境の仕様メモ。


ネットワーク構成 #

  • 通信経路: Android (Tailscale) ➔ [暗号化トンネル] ➔ 自宅PC (Tailscale)
  • ポート番号: 22000 (Syncthing同期用プロトコル)
  • 接続方式: スマホ側からPCのTailscale IPに対してアドレスを直接固定指定

接続先デバイス情報 #

  • 自宅PC(ホスト): torrent-nano
    • ファイアウォール:Windows Defenderにて「Syncthing」のプライベート/パブリック通信を許可済み
  • スマホ(クライアント): xiaomi13T-motty (Syncthing-Fork使用)

同期フォルダパス #

  • PC側(ソース): [PC内のObsidian保管庫のパス]
  • スマホ側(デスティネーション): /storage/emulated/0/Documents/ObsidianVault

各デバイスの挙動と同期のタイミング #

1. スマホ(Android)で編集 ➔ PCへ反映 #

  • タイミング: スマホのObsidianで別のファイルを開く、または**アプリをバックグラウンドに下げる(閉じる)**瞬間。
  • 仕組み: Obsidianアプリがファイル(.md)に確定書き込み(フラッシュ)を行った瞬間、Syncthing-Forkが変更を検知して即座にPCへ送信する。PC版Obsidianは画面が自動でヌルッと書き換わる。

2. PCで編集 ➔ スマホへ反映 #

  • タイミング: PCのObsidianでのキー入力の合間(自動保存)、またはVimモードでの :w(上書き保存) の瞬間。
  • 仕組み: PC側で保存されたデータは一瞬でスマホのストレージに届く。スマホのObsidian画面への見た目の反映は、スマホ側で別ファイルを開き直す、またはアプリを立ち上げ直したタイミングで再描画(リフレッシュ)される。

快適に運用するための注意点(Tips) #

  1. 【重要・やらかし注意】 フォルダ名・パス変更の罠
    • 同期が確立した後に、スマホのファイルマネージャーやPC側から同期対象のフォルダ名を直接変更すると、Syncthingがパスを見失って同期が完全にストップする。
    • 万が一フォルダ名や場所を変えたい場合は、フォルダ内のファイルを直接書き換えるのではなく、一度Syncthing上でフォルダの設定(パス指定)を修正するか、フォルダの共有を再設定する必要がある。
  2. 競合(コンフリクト)の防止
    • 同じファイルをPCとスマホで同時に開き、両方からガリガリ編集すると競合ファイル(.sync-conflict-...)が作られる原因になる。PCを離れるときは、白紙のノートや別のファイルにカーソルを移しておくのが安全。
  3. スマホ側のバックグラウンド生存確認
    • Androidの強力な省電力機能により、長時間スマホを触っていないとSyncthing-Forkが居眠りすることがある。
    • 出先で「確実に今すぐ同期させたい」時や、帰宅してPCを開く直前などは、スマホのSyncthing-Forkアプリを一瞬開いてステータスが「最新」になるのを確認すると確実。
  4. スマホ側の起動条件設定
    • 現在の設定:モバイルデータ通信での実行を許可
    • Tailscale経由の通信はスマホからはデータ通信として認識されるため、この設定が必須。