ObsidianのノートをSynology NASで同期する方法

Obsidianのサブスク高すぎ問題

Obsidian、なんだかんだ言って私にとってはやっぱり使いにくいですが(笑)Evernoteの値上げやレイオフのこともあって、乗り換え先にならないか、ちょっといじってみました。
ネックになるのがデバイス間でデータを同期するには月額8ドル(現在のレートで1200円程度)のサブスクリプションに加入しなくてはいけないことで、それならEvernoteのほうが安いくらいじゃないかということになります。EvernoteはPROFESSIONALを選んでも年払いなら月額1033円です。
そこで多くの人がクラウドストレージを使って同期を試みているようですが、クラウドストレージでは特にOSをまたぐ際に同期が安定しませんし、無料アカウントでは容量が全然足らないのではないかと思います。それなら素直にObsidianSyncに8ドル払えばよくないですか。
それで紹介されていたのが「Self-hosted LiveSyncプラグイン」を使う方法とGitHubを無料のストレージとして使ってしまう方法でした。
が、GitHubにはサイズ制限があります。
遠回しに「デカいファイルを扱いたければ、別のクラウドストレージを契約しろよな?」「リポジトリ全体の容量も5GBくらいまでにしておけよ?」と脅されています。

だから「Self-hosted LiveSyncプラグイン」で同期していきたいというところに落ち着くわけです。
ただしこの場合問題となるのはサーバーの用意です。
Obsidianの複数端末同期方法まとめではIBM-Cloudantを経由する方式をとっていますが、IBM-Cloudantのアカウントは作成に失敗する可能性が高いです。
これとまったくおなじ状況で、あらゆる手を尽くしましたがクレジットカードの認証が弾かれてアカウントが作れません。だめじゃないですか。
そこで皆さんが持て余しているSynologyのNASに鯖を立てていきましょう。

Synology NAS経由で同期する方法

まずはこちらを参考にCouchDBをセットアップします。簡単な英語の説明ですが読むのがだるい人もいると思うので適当に手順を書きます。

準備

  1. Container Managerをインストールしておきます

  2. 共有フォルダ「docker」に「obsidian-couchdb」フォルダを作っておきます
  3. 「obsidian-couchdb」フォルダにlocal.iniを置きます

    local.ini

  4. UIDとGIDを調べるためタスクを作成して実行します
    1. コントロールパネルからタスクスケジューラーを開く
    2. [作成]>[予約タスク]>[ユーザー指定のスクリプト]を選択
    3. [全般]タブ

      1. 適当にタスクに名前を付けます
      2. ユーザーは自分を指定
      3. [有効]からチェックを外す
    4. [スケジュール]タブ

      1. [次の日に実行]を選択
      2. [繰り返さない]とする
    5. [タスク設定]タブ

      1. [Eメールで詳細な実行情報を送信]にチェック
      2. メールの宛先を入力
      3. ユーザー指定のスクリプトに「id」と入力して[OK]
    6. 作ったタスクを選択して実行ボタンを押します
    7. するとUIDとGIDの記載されたメールが飛んできますので確認しておきます

デプロイ

今度はデータベースをデプロイするためのタスクを作っていきます
  1. 途中までは先ほどUIDとGIDを調べたときと同じです
  2. [タスク設定]タブのユーザー指定のスクリプトに下記を入力します
docker run -d
-e COUCHDB_USER=任意のユーザー名
-e COUCHDB_PASSWORD=任意のパスワード
-e PUID=先ほど調べたUID
-e PGID=先ほど調べたGID
-v /volume1/docker/obsidian-couchdb/local.ini:/opt/couchdb/etc/local.ini
-v /volume1/docker/obsidian-couchdb/data:/opt/couchdb/data
-p 5984:5984
–restart always
couchdb
これを実行します

Self-hosted LiveSyncプラグインの設定

データベースのURLを入力し、先ほど決めた任意のユーザー名とパスワードを設定して、データベース名を指定して接続します