はじめに
これまでの構成
Android版Obsidianでメモを取り、VaultをUGREEN NASにも保存しています。
当初はUGREEN NASアプリの「フォルダバックアップ」を利用していました。
Android
└─ Obsidian Vault
↓
UGREEN NASアプリ
└─ フォルダバックアップ
↓
UGREEN NAS
発生した問題
実際に運用してみると、既存のMarkdownファイルを更新するたびに、NAS側では元のファイルが更新されず、memo (1).md、memo (2).md のように別ファイルが増えていきました。
memo.md
memo (1).md
memo (2).md
Obsidianでは同じMarkdownファイルを継続して編集するため、この動作ではVaultを管理しにくくなります。
そこで、UGREEN NASのフォルダバックアップ以外の方法を検討しました。
必要なのはバックアップではなく同期
UGREEN NASのフォルダバックアップは、Android上のファイルをNASへ保存する用途には適しています。
一方、今回やりたいのは、
Android → NAS
という一方向のファイル退避ではなく、
Android ↔ NAS
という双方向の同期によって、既存ファイルの更新を互いに反映することです。
つまり、今回必要なのはバックアップではなく、ファイル同期の仕組みです。
同期方法の比較と選定
各方法の比較
AndroidのローカルVaultとUGREEN NASを同期する方法として、いくつかの候補を比較しました。
| 方法 | 良い点 | 気になった点 |
|---|---|---|
| UGREEN Folder Backup | NAS標準機能で簡単 | 更新時に (1) ファイルが作成された |
| FolderSync | SMBでNASと直接同期できる | 無料版では広告が表示される |
| SMBSync3 | SMBで直接同期でき、広告もない | メンテナンス状況が気になる |
| Syncthing | ファイル同期を目的とした仕組み | NAS側にもSyncthingが必要 |
Syncthingを選んだ理由
FolderSyncやSMBSync3であれば、AndroidからUGREEN NASへSMBで直接アクセスできるため、構成はシンプルです。
一方、Syncthingを使うには、UGREEN NAS側でもSyncthingを動かす必要があります。
今回は、ファイル同期そのものを目的とした仕組みであることを重視し、Syncthingを選びました。
採用した同期構成
AndroidとNASで使うアプリ
今回の構成では、Android側とNAS側で利用するアプリケーションが異なります。
Androidでは Syncthing-Fork、UGREEN NASでは通常の Syncthing を利用します。
以前はSyncthing公式のAndroidアプリがありましたが、現在は開発が終了しています。
ただし、終了したのはAndroidアプリの開発であり、Syncthing本体の開発が終了したわけではありません。そのため、NAS側では通常のSyncthingを利用できます。
同期構成
構成は次のようになります。
Android
┌──────────────────────┐
│ Obsidian │
│ └─ Local Vault │
│ ↕ │
│ Syncthing-Fork │
└──────────┬───────────┘
↕
UGREEN NAS
┌──────────────────────┐
│ Docker │
│ └─ Syncthing │
│ ↕ │
│ Obsidian Vault │
└──────────────────────┘
UGREEN NAS側では、公式Dockerイメージ syncthing/syncthing を使用しました。
検証
構築の概要
次の流れで環境を構築しました。
- UGREEN NASにDockerコンテナとしてSyncthingを導入
- Web UIへアクセスして設定
- AndroidにSyncthing-Forkをインストール
- AndroidとNASを接続
- 同期フォルダを作成して共有
- ファイルが同期されることを確認
具体的な構築手順は、別の記事でまとめる予定です。
検証結果
最後に、今回の問題が解消したかを確認しました。
AndroidのObsidianから既存の
memo.md
を編集します。
UGREEN NASのフォルダバックアップでは、次のようになりました。
memo.md
memo (1).md
Syncthingに変更した環境では、新しいファイルは作成されず、
memo.md
そのものが更新されました。
期待していた動作になりました。
今回問題になっていた、編集するたびに (1)、(2) とファイルが増えていく現象も発生しませんでした。
ただし、AndroidとNASで同じファイルを同時に編集した場合は、Syncthingでも競合ファイルが作成されることがあります。今回解消したのは、同時編集ではない更新でもフォルダバックアップが別名ファイルを作成していた問題です。
まとめ
Android版ObsidianのVaultをUGREEN NASアプリのフォルダバックアップで保存していましたが、既存ファイルを更新すると別名ファイルが作成される問題がありました。
Android:Syncthing-Fork
↕
UGREEN NAS:Syncthing(Docker)
という構成に変更しました。これにより、既存ファイルを編集するたびに別名ファイルが作成される課題を解消できました。