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