[author: threat(claude code agent)]
GitHubから離れたいという気持ちが根本にあった。ファイル同期の選択肢を考えていたところ、Syncthingという名前が浮かんで試してみることになった。Web Claudeからの提案がきっかけ。
Microsoft傘下になってからのGitHubについて、長期的にプラットフォームリスクを感じている。「いつでも別の場所に移れる状態にしておきたい」という気持ちが根本にある。
これとは別の文脈として、複数デバイスのファイル同期にはiCloud Driveを使っていた。ただ、iCloudは「同期タイミングの主導権がAppleにある」という構造が引っかかっていた。いつ同期が走るか、どのファイルが優先されるかを自分でコントロールできない。消去法的に、gitをファイル管理のベースとして選んでいたのはそのためだ。
そこにSyncthingの名前が出てきた。Web Claudeに「クラウドフリーな同期方法はないか」と聞いたところ、「Syncthingが選択肢として面白いのでは」という提案が返ってきた。試してみることにした。
Syncthing は、オープンソースのP2Pファイル同期ツールだ。2013年から開発が続いており、2025年8月にv2.0をリリース。GitHubスターは8万超。
特徴を一言で言えば「中央サーバーなし、アカウントなし、デバイス間で直接同期する」。
v2.0では内部にSQLiteを採用してパフォーマンスが向上。ファイル変更の検知はファイルシステムウォッチャが担当し、デフォルトでは変更を約10秒バッファしてからスキャン→同期が走る(設定で調整可能。削除は追加で遅延が入る)。
セットアップは自力でやった。
WSL2(Ubuntu)側:
sudo apt install syncthing
Mac側:
brew install syncthing
デバイスの接続には、Qiitaの記事(SyncthingでWindowsとMacのデータを同期する)を参考にした。流れはシンプルで、各デバイスのSyncthingが発行するデバイスIDをコピーして相手側のUIに登録するだけ。ID交換にはメールを使い、WSL2(Windows)とMacを相互に登録した。
SyncthingのWebUI(http://localhost:8384)から操作すれば、難しい設定はほぼない。
WSL2側でスレート(AIアシスタント)の手を借りながら、GitHubで管理している就活情報フォルダをSyncthingのDefault Folder配下にコピーした。
目的: MacのObsidianからMarkdownを参照できるようにする。
.gitは含めない方針: Syncthingを通じた.gitの同期は、両端でgit操作が走ると壊れる可能性があるため除外した。
mkdir -p ~/Sync/job-hunt
git clone --depth=1 https://github.com/f42gh/jh /tmp/jh_tmp
rsync -av --exclude='.git' /tmp/jh_tmp/ ~/Sync/job-hunt/
rm -rf /tmp/jh_tmp
約48MBのファイル群が展開され、Syncthingが自動的にMacへ配布。Mac側では ~/Sync/job-hunt/ として見えるようになった。このディレクトリをObsidianのVaultとして開けば、Obsidianから就活ノートを閲覧できる。
試した結果、Syncthingにできないことが明確になった。
Syncthingは後勝ち方式だ。両デバイスで同じファイルを同時に編集すると、片方は filename.sync-conflict-xxxx.md というConflictコピーとして保存される。gitなら git merge で統合できるが、Syncthingにその概念はない。
git diff による変更の確認、git branch による実験的な変更の隔離、コミット単位での巻き戻し——これらはすべてSyncthingにはない。
.stignore ファイルで除外設定はできるが、gitignoreほど細かい制御はできない。
新しいフォルダを同期対象に追加するとき、片方で追加してもう片方に承認リクエストが届く形になる。iCloudのように「フォルダを置いたら自動で同期」とはならない。
実際に試した結果、現時点での結論はこうなった。
学生のあいだはiCloud Drive(50GB/月150円)で十分。 ただ、これからの人生で扱うデータの規模を考えると、クラウドストレージへの長期的な期待は過剰だと感じた。容量・コスト・プライバシーすべての観点で、NASを動かせるタイミングが来たらiCloud Driveを置き換えるのが自然な方向性だ。
SyncthingはそのときのNASハブ役として機能する。NASをSyncthingのハブにすれば、常時稼働・低コスト・プライバシー保護・完全自己管理のストレージ体制が実現する。
Syncthingが得意なこと:
Syncthingが苦手なこと(gitに任せる):
gitワークフロー自体の価値は変わらない。「GitHubからGitea/Codebergへ移行する」という方向性と、「ファイル同期をSyncthingに任せる」という方向性は、互いに補完関係にある。今回この記事をブランチ上で書いてPRを立てながら、gitのワークフロー自体の利点を改めて実感した。
Syncthingは地味で渋いツールだが、「自分のデータを自分でコントロールしたい」という思想の具体的な実装として、10年以上にわたって生き残っている。クラウド依存を減らす方向でインフラを組み直したい人には、一度試してみる価値がある。