torazaemon2016’s blog

手書き文字認識メモ開発

Windows, iPhone, AndroidでのObsidianデータ同期(Syncthingを使って)

ObsidianのVaultを WindowsiPhoneAndroidで同期するには、いろいろと方法がWWWで出ていて、

などなど。 有料から無料のもの、設定が簡単なものから難しいもの、 複数の同期が時間が掛かるらしいものなど どれを使えばいいのかと。

お金があれば、公式のobsidian syncでやるのが一番かと思いますけど、少々高い。

クラウドは使いたくない (データは外に出したくない)

自分の(Windows + iPhone)で「クラウドは使いたくない (外部にコンテンツデータは出したくない)」という、かなりひねくれた環境では、 選択肢がなかなかない。

Remotely Save プラグイン

Windows + Docker Desktop + WebDAV (bytemark/webdav)なら、比較的簡単にWebDAVの構築でき、これを動かすことで、ノートPCにてローカル(Docker 上のLinux ファイルシステム上)にデータを持たせ、 それに obsidian のコミュニティプラグイン Remotely Save で同期するという方法で しばらく運用していた。

若干同期に時間が掛かる(最短で1分ぐらいのインターバル)問題があったけど、 Windows + iPhoneで remolety Saveプラグインで手軽に同期して使えていた。

問題点

WindowsでのObsidianのフォルダとDocker上のファイルシステムにデータ領域が2重になることで、ディスク領域が多く必要。

(DockerでWindows領域をmountする方法を取ることで、WevDAVでの保存場所を同じWindows領域にしようとしたら、そのファイルアクセスの致命的な遅さで実用的でなかった。500MBほどのobsidian Vault領域をDockerでmountしたら、WevDAVでの起動が10分以上掛った)

Dockerなので、メモリがたくさん消費される(通常ならDockerシステムだけで2GB)。 消費量を1GBに設定変更したりしても、Docker関係もろもろで2GB程度メインメモリが使われていた。

16GBメモリ+1TBのSSDのノートPCだったので、動かせていたけど、これが8GBの256GB程度だとちょっと厳しいかと思う。

そして、最近、iOSのほうで、WevDAVへのアクセスがhttpではだめで、httpsにしないとアクセスしないってなったぽい(アクセスしてくれなくなった)

Dockerで HTTPSを可能にとすればいいのだけど、 bytemark/webdavで簡単に構築できたのがウリだったのが、HTTPSで作り直すのが面倒だなぁというのと、Remotely Save同期の遅さがちょっと気になっていた (iPhoneのほうはとても速いのだけど、Windowsでのremotely saveが遅い(最近のRemotely SaveのVersion Upでかなり速くはなっていたのだけど))

Syncthing

そこで、Syncthingを使うことにした。

SyncTrayzor

Windowsでは、syncthingの本家からでもいいですし

今回は、GUIとして、上記のようなブラウザベースではなく、専用のものを使ってみました。

Synthingは50MBぐらい、SyncTrayzorが120MBぐらいのメモリ使用量なので、Dockerのころに比べてメモリ使用量は格段に減りました。

iPhoneではMöbius Sync

Windows版、Androidは無料で使えるけど、iPhoneのほうは「Möbius Sync」という700円のものが必要です。

(Möbius Syncと Möbius Sync Proの2つがありますが、無印のほうでアプリ内課金700円するのと、Proの最初っから700円では、同じものらしいです)

無料で使える「Mobius Sync」では、20MBまでだったり、iPhone内のアクセスできる領域がMobius Sync内フォルダのみ(サンドボックス内のみ)で、Obsidianで通常作られる Vaultの「このiPhone内」の「Obsidian」フォルダにはアクセスできない。

そこで無印で、お試しして、Windowsの適当なところと、iPhoneのMöbius Sync内のサンドボックスと同期するテストして、動作を確認できたので、 アプリ内課金700円で購入してみて、Obsidianでの設定を行ったところ、iPhone内のObsidianのフォルダへアクセスができた。 (Möbius Syncフォルダ以外へのアクセスは、実験で、保証が・・・とかと出ているけど、ちゃんと使えた)

700円のコストはかかるけど、公式のsyncの月額でかかるよりは、1回で済むので、コスト的には良いかと思う。

Windows,iPhoneとも設定を行って接続したところ、ObsidianのVault領域の同期ができました。(感動)

外部アクセスを切る

Firewallでログ見ると、いっぱい外へのアクセスが出ている。 P2Pでローカルで同期のはずなのに、どうして?と思うと、外部アクセスしないように設定する必要があるようなので、checkを外すなど、いろいろと設定する。

アドレスをIPで書いたりするため、IPアドレスを固定するのに 家のWiFi環境(Wifiルータ)でのDHCPiPhoneを静的に設定するとか、 これだけではだめで、最近のiPhoneは、MacAddressがランダム化するので、 DHCPのためにそれを止めてみるとか、いろいろと「はまるポイント」があったりしましたが、 Windows + iPhone + Android で同期できる環境 (2,3秒で同期)ができて、 Obsidianでますます個人記録(日記)を書いていける環境ができました。

おわりに

iPhoneで同期させるためには、毎回Mobius Syncを起動しないといけないけど、そこはiPhoneなので仕方がない。 Androidのほうも、バッテリの関係でバックグラウンドでいいか、iPhoneのように起動するかは、電池と更新頻度の兼ね合いですね。

日本語でのobsidian + syncthingで Windows + iPhoneの話があまりなさそうなので、書いてみました。

画面のキャプチャはないけど、需要があれば、更新できればですね。

Keyword:Windows, iPhone, Android, Obsidian, 同期, Sync