Obsidian×Githubで複数端末の同期を無料で行う

Obsidianがめちゃくちゃ使いやすくて気に入っているのだが、純正クラウドストレージ(Obsidian Sync)が有料でそこそこのお値段がするのが難点だ。

とはいえ信頼できるクラウドストレージにバックアップしたい、PCでもスマホでも同期したい。でも月額1000円は厳しい。そんなワガママを貫き通す執念の構築結果をここにメモする。

前提:

  • Obsidianインストール済み
  • Gitの基礎知識あり
  • Windows × iPhone。まぁMacやAndroidでもそう変わらないと思われる。
  • PushはPCのみで行い、スマホは閲覧専用とする。

スマホでもできなくはないが、私はやらないので深追いしていない。ちなみに私はスマホではGoogle Keepに走り書きし、PCでObsidianにまとめるスタイルをとっている。スマホのObsidianは閲覧専用。

手順① Githubにリポジトリを用意

まずはGitリポジトリを作る。別にGithubである必要はないのでお好みでBitbucket等にしても問題ない。

手順② PC (Windows) の設定

Gitリポジトリをクローン

  1. 任意のディレクトリにクローンする。
  2. クローンしたリポジトリをObsidianで開く(“Open folder as vault” でディレクトリを選択)。
  3. rootディレクトリ(Vault直下)に.gitignoreを作成し、以下を記述する。
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/*-plugins.json
.obsidian/plugins/recent-files-obsidian/data.json
.obsidian/appearance.json
.obsidian/graph.json
.trash/
.DS_Store

.obsidian/で設定ファイルを丸ごと除外してしまう手もあるが、Obsidian Gitの設定やCSSは同期したいので限定的にしている。

Obsidian Gitをインストール

「Git (obsidian-git)」というObsidianのコミュニティプラグインをインストールする。

  1. 設定 → コミュニティプラグイン → コミュニティプラグインの閲覧ボタン
  2. “Git”で検索し、Git (開発者=Vinzent) をインストール
  3. Gitを有効化

起動時にPullするよう設定

ここは任意。私はObsidian起動時にリポジトリからpullするよう設定している。

  • “Auto pull interval (minutes)“=0: 自動的にpullをする間隔。0を指定して無効化。
  • “Pull updates on startup”=ON: Obsidian起動時に自動的にpullする。

これで起動時に自動でPullされる。他の設定は何をいじったか覚えていないので私の\obsidian\plugins\obsidian-git\data.jsonをそのまま載せておく。

{
  "commitMessage": "vault backup: {{date}}",
  "commitDateFormat": "YYYY-MM-DD HH:mm:ss",
  "autoSaveInterval": 0,
  "autoPushInterval": 0,
  "autoPullInterval": 0,
  "autoPullOnBoot": true,
  "disablePush": false,
  "pullBeforePush": true,
  "disablePopups": false,
  "listChangedFilesInMessageBody": false,
  "showStatusBar": true,
  "updateSubmodules": false,
  "syncMethod": "merge",
  "customMessageOnAutoBackup": false,
  "autoBackupAfterFileChange": false,
  "treeStructure": false,
  "refreshSourceControl": true,
  "basePath": "",
  "differentIntervalCommitAndPush": false,
  "changedFilesInStatusBar": false,
  "showedMobileNotice": true,
  "refreshSourceControlTimer": 7000,
  "showBranchStatusBar": true,
  "setLastSaveToLastCommit": false,
  "submoduleRecurseCheckout": false,
  "gitDir": "",
  "showFileMenu": true,
  "autoCommitMessage": "vault backup: {{date}}"
}

Commit + Pushをカスタムホットキーに設定

ここは任意。私はホットキーでバックアップ(Commit + Push)するようにしている。

「設定 → ホットキー」を開き”Git”でフィルタリング。

  • 「Git: Push」のホットキーを削除
  • 「Git: Create backup」に任意のホットキーを割り当て。私の場合は「Ctrl + Shift + P」

手順③ スマホ (iPhone) の設定

  1. Obsidianをインストール
  2. アプリを開いて「Create new vault」を選択
  3. 「Vault name」に任意の名前を入力して「Create」を押下
  4. 「Git」をインストールして有効化
    1. 「左上のサイドバーアイコン → 設定アイコン → コミュニティプラグイン」を開く
    2. コミュニティプラグインの「閲覧」を押下
    3. “Git”で検索し、Git (開発者=Vinzent) をインストール
    4. Gitを有効化
  5. Gitのオプションを開き、Gitの認証情報を設定。「Autentication/commit author」で以下を設定する。
    • Username
    • Password/Personal access token
    • Author name for commit
    • Author email for commit
  6. 設定を閉じてVaultのトップ画面に戻る。
  7. 下へフリックしてコマンドパレットを表示
  8. “clone”と入力し、表示された「Git: Clone an existing remote repo」をタップ
  9. CloneするリポジトリのURL(手順①のURL)を入力
  10. “Enter directoryfor clone. (略)“で「Vault Root」をタップ
  11. “Does your remote repo contain a .obsidian(略)“で「YES」をタップ ※.gitignore.obsidian/配下を丸ごと除外するなら「NO」。

これでCloneされ、ノートが閲覧できる。本稿の手順ならPCでの設定がそのまま反映されているはず。私はスマホは閲覧専用と割り切っているので、閲覧モードで使用している。

それではよいObsidianライフを!