CouchDB と Obsidian Live Sync で複数デバイス間の同期を実現する
はじめに
Obsidian はマークダウンベースのナレッジベースツールとして人気がありますが、複数デバイス間でノートを同期する場合、iCloud や Dropbox などの外部サービスを利用する必要があります
この記事では、自己ホストの CouchDB サーバーと Obsidian Live Sync プラグインを使用して、より柔軟な同期環境を構築する方法を解説します
CouchDB サーバーの構築
Docker Compose ファイルの準備
以下の内容で compose.yml を作成します
version: "3.8"
services:
couchdb:
image: couchdb:latest
container_name: couchdb
restart: always
environment:
- COUCHDB_USER= #username
- COUCHDB_PASSWORD= #password
volumes:
- ./local.ini:/opt/couchdb/etc/local.ini
ports:
- "5984:5984"CouchDB 設定ファイルの準備
CouchDB の設定ファイル local.ini を以下の内容で作成します
[couchdb]
single_node=true
max_document_size = 50000000
[chttpd]
require_valid_user = true
max_http_request_size = 4294967296
[chttpd_auth]
require_valid_user = true
authentication_redirect = /_utils/session.html
[httpd]
WWW-Authenticate = Basic realm="couchdb"
enable_cors = true
[cors]
origins = app://obsidian.md,capacitor://localhost,http://localhost
credentials = true
headers = accept, authorization, content-type, origin, referer
methods = GET, PUT, POST, HEAD, DELETE
max_age = 3600この設定により
- ドキュメントの最大サイズを 50MB に設定
- Basic 認証を有効化
- CORS を設定して Obsidian からのアクセスを許可
- HTTP 要求の最大サイズを 4GB に設定
サーバーの起動
compose.ymlとlocal.iniを同じディレクトリに配置しますcompose.ymlのCOUCHDB_USERとCOUCHDB_PASSWORDを設定します- 以下のコマンドでサーバーを起動します
docker compose up -dObsidian Live Sync の設定
プラグインのインストール
- Obsidian の設定を開きます
- コミュニティプラグイン → 閲覧から「Self-hosted LiveSync」を検索してインストール
- プラグインを有効化します
プラグインの設定
- Self-hosted LiveSync の設定を開きます
- 「Remote Database Configuration」セクションで以下を設定
- Database URI:
http://localhost:5984(ローカルの場合) - Username: CouchDB で設定したユーザー名
- Password: CouchDB で設定したパスワード
- Database URI:
- 「Test connection」をクリックして接続をテスト
- 接続が成功したら「Setup database」をクリック
これにより自動同期が有効になり、変更が自動的にCouchDBサーバーと同期されるようになります!
注意点
- 初回同期時は保存されているノートの量によって時間がかかる場合があります
- 同期の衝突を避けるため、同じノートを複数のデバイスで同時に編集することは避けましょう
- 定期的なバックアップを忘れずに行うことをおすすめします
以上で、CouchDB と Obsidian Live Sync を使用した同期環境の構築は完了です このセットアップにより、インターネット接続があれば世界中どこからでもノートにアクセスし、編集することができます!