2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi + Self-hosted LiveSyncでObsidianの爆速同期環境を構築する

2
Last updated at Posted at 2026-03-13

はじめに

Obsidianの同期には、これまでRemotely Saveプラグインを使用していました。大きな不満はなかったものの、アプリの起動時間が少し長かったり、同期が完了するまでにワンテンポ待たされたりするのが、毎日使っていると地味なストレスになっていました。

そこで、Self-hosted LiveSyncプラグインを利用して同期環境を構築しようと考えました。Fly.ioと組み合わせるのが定番でしたが、Fly.ioの無料枠がなくなってしまったので、代わりにラズパイをサーバーとして稼働させます。

同期はかなり速く、PCで打ったそばからスマホに反映されていきます。正確な時間は計測していませんが、変換前の文字も反映されるくらいの速さです。また、Remotely Saveを利用していたときより起動が早くなりました。

全体構成

  • ハードウェア: Raspberry Pi 3 Model B + microSD
    • 自宅に設置してサーバーとして稼働させます。
  • データベース: Apache CouchDB
    • Dockerを利用してラズパイに立ち上げました。
  • ネットワーク: Tailscale
    • 外出先から自宅のラズパイにアクセスするための無料VPNサービスです。
  • フロントエンド: Obsidian + Self-hosted LiveSyncプラグイン
    • PCとスマホの両方にインストールします。

導入手順

①Raspberry Pi OSのインストール

まずはラズパイを動かすためのOSをmicroSDカードに書き込みます。公式が提供しているRaspberry Pi Imagerというツールを使います。

PCにツールをダウンロードして起動したら、以下の手順で進めます。

1. デバイスを選ぶ

ご自身のデバイスに合わせて選択してください。

スクリーンショット 2026-02-27 173340.png

2. OSを選ぶ

今回は画面出力は不要なので、「Raspberry Pi OS (other)」の中にある軽量な「Raspberry Pi OS Lite」を選びます。

スクリーンショット 2026-02-27 173359.png
スクリーンショット 2026-02-27 173415.png

3. ストレージを選ぶ

PCに差したmicroSDカードを選択します。

4. ホスト名の設定

ラズパイの名前(gear などわかりやすいもの)を設定します。

スクリーンショット 2026-02-27 174038.png

5. ローカライズ設定

「Tokyo」や「jp」を選択します。

スクリーンショット 2026-02-27 174157.png

6. ユーザー名とパスワードの設定

ご自身で決めた任意のユーザー名(pi などわかりやすいもの)とパスワードを設定します。

スクリーンショット 2026-02-27 174209.png

7. Wi-Fi設定

自宅のSSIDとパスワードを入力します。

スクリーンショット 2026-02-27 174134.png

注意
Raspberry Pi 3 Model Bは5GHzのWi-Fiを拾うことができません。ルーターの設定を確認し、2.4GHz用のSSIDへ接続する必要があります。

8. リモートアクセス設定

「SSHを有効化する」をオンにします。「Authentication mechanism」は「パスワード認証を使う」を選択してください。

スクリーンショット 2026-02-27 174118.png

9. Raspberry Pi Connectの設定

Raspberry Pi Connectはオフでいいです。

スクリーンショット 2026-02-27 174229.png

②Raspberry PiにSSH接続する

OSを書き込んだmicroSDをラズパイに挿し込み、電源ケーブルを繋いで起動します。数分待ってラズパイが立ち上がったら、ターミナルを開き、SSH接続でラズパイに入ります。

以下のコマンドを実行します。ユーザー名とホスト名は、①のRaspberry Pi Imagerで設定したものに書き換えてください。

ssh ユーザー名@ホスト名.local

初めて接続する際は「Are you sure you want to continue connecting?」と聞かれるので、yes と入力してEnterを押します。続いてパスワードを求められるので、①のRaspberry Pi Imagerで設定したものを入力してください。

注意
パスワードを入力しても、画面上には「*」などの文字が一切表示されず、カーソルも動きません。一見フリーズしたように見えますが、しっかり入力されているので、気にせず最後まで打ち込んでEnterを押してください。

ユーザー名@ホスト名:~ $ のような入力待ち画面になったら接続成功です。

ssh: Could not resolve hostname ホスト名.local というエラーが出る場合、一度ラズパイの電源ケーブルを抜き差しして再起動すると繋がることがあります。それでもダメな場合は、ルーターの管理画面や arp -a コマンドでラズパイのIPアドレス(192.168.x.x など)を特定し、ssh ユーザー名@192.168.x.x と直接IPアドレスを指定して接続を試みてください。

③Raspberry PiにCouchDBを構築する

まずはDockerをインストールします。以下のコマンドを実行してください。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

インストールが終わったら、毎回 sudo(管理者権限)をつけなくてもDockerを使えるようにする設定を行います。以下のコマンドを実行してください。

sudo usermod -aG docker $USER

この設定を反映させるため、一度 exit と入力してSSH接続を切り、もう一度 ssh ユーザー名@ホスト名.local でラズパイに入り直してください。

次にCouchDBをラズパイ上に立ち上げます。以下のコマンドを実行します。

docker run -d --name livesync \
-e COUCHDB_USER=admin \
-e COUCHDB_PASSWORD=password \
-v ~/couchdb/data:/opt/couchdb/data \
-p 5984:5984 \
--restart always \
couchdb:latest

-v ~/couchdb/data:/opt/couchdb/data の指定を忘れると、コンテナを削除・再起動した際にラズパイ上のCouchDBのデータが初期化されてしまいます。 同期トラブルを防ぐため、必ずラズパイ本体のディレクトリと紐付けてサーバー側のデータを永続化させます。

上記の -e COUCHDB_USER=admin-e COUCHDB_PASSWORD=password は、ご自身で推測されにくい任意のユーザー名とパスワードに変更してください。

④Tailscaleの導入

CouchDBが立ち上がったら、次は外出先からでもスマホやノートPCで同期できるようにVPNを構築します。

1. ラズパイへのインストール

SSH接続したラズパイで以下のコマンドを実行し、Tailscaleをインストールします。

curl -fsSL https://tailscale.com/install.sh | sh

2. Tailscaleの起動とログイン

インストールが完了したら、以下のコマンドで起動します。

sudo tailscale up

実行するとコンソール上に認証用のURL(https://login.tailscale.com/a/xxxxxx のような文字列)が表示されます。これをPCのブラウザで開き、GoogleアカウントやGithubアカウントでログインしてデバイスをネットワークに登録します。

3. ラズパイのIPアドレスを確認する

ラズパイに割り当てられたTailscale専用のIPアドレスを確認します。

tailscale ip -4

ここで表示される 100.x.x.x のようなIPアドレスをメモしておきます。

4. PCとスマホにもTailscaleを入れる

同期させたいPCやスマホにもTailscaleアプリをインストールし、同じアカウントでログインしてVPN接続をオンにします。これで、離れた場所にいても端末同士が同じ仮想ネットワークに繋がります。

5. Tailscaleの鍵の有効期限を無効化する

Tailscaleはセキュリティの仕様上、デフォルトだと180日で端末のログイン状態(key expiry)が切れ、自動的にログアウトされてしまいます。急に接続が切れたら困るので、サーバーとして常時稼働させるラズパイについては無効化しておきます。

PCやスマホのブラウザからAdmin consoleにアクセスし、ログインします。

デバイス名の右側にある「・・・」メニューをクリックし、「Disable key expiry」を選択します。

⑤Self-hosted LiveSyncの設定

最後にPCのObsidianを開いて設定を行います。作業中はPCのTailscaleがオンになっていることを確認してください。

1. プラグインのインストールとウィザードの開始

Obsidianの設定から「コミュニティプラグイン」を開き、「Self-hosted LiveSync」を検索してインストールし、有効化します。有効化してプラグインの設定画面を開くと、初期設定ウィザードが立ち上がります。

2. セットアップの選択

今回はこのPCが最初の1台目になるため、「I am setting this up for the first time」を選択し、「Yes, I want to set up a new synchronisation」をクリックします。

スクリーンショット 2026-03-13 145435.png

3. 接続方法の選択

今回は自分で立ち上げたラズパイのサーバー情報を直接入力するため、「Enter the server information manually」を選択し、「I know my server details, let me enter them」をクリックします。

スクリーンショット 2026-03-13 145507.png

4. End-to-End暗号化(E2EE)の設定

通信の暗号化設定です。設定する場合はパスフレーズを入力しますが、今回はそのまま「Proceed」をクリックして進みます。

スクリーンショット 2026-03-13 145543.png
スクリーンショット 2026-03-13 145547.png

5. サーバータイプの選択

「CouchDB」を選択し、「Continue to CouchDB setup」をクリックします。

スクリーンショット 2026-03-13 145552.png

6. CouchDBの接続設定

ここで、③で設定したサーバー情報を入力していきます。

  • URL: http://<④でメモしたラズパイのTailscale IP>:5984
  • Username: ③で設定したCouchDBのユーザー名
  • Password: ③で設定したCouchDBのパスワード
  • Database Name: 任意のデータベース名(obsidian-sync など)

スクリーンショット 2026-03-13 145621.png

入力後「Detect and Fix CouchDB Issues」をクリックします。すると、初めての接続で引っかかりがちなCORS(オリジン間リソース共有)などの設定を、プラグイン側が自動で検知して修正してくれます。「All checks passed successfully!」と表示されたら、「Test Settings and Continue」をクリックします。

スクリーンショット 2026-03-13 145709.png

7. サーバーの初期化

設定が完了したら、サーバー側のデータを構築します。「Restart and Initialise Server」をクリックします。

スクリーンショット 2026-03-13 145724.png

8. 最終確認

この端末のデータをマスターコピーとして、サーバーのデータを上書きするという最終確認画面が出ます。チェックボックスにすべてチェックを入れ、「I have created a backup of my Vault.」または「I understand the risks and will proceed without a backup.」を選択して、「I Understand, Overwrite Server」をクリックします。

スクリーンショット 2026-03-13 150102.png
スクリーンショット 2026-03-13 150119.png

9. 同期モードの確認

最後に、プラグインの設定画面上部にある「同期設定」タブで、同期モードを「LiveSync」にします。

スクリーンショット 2026-03-13 151257.png

⑥スマホ(2台目)を同期に参加させる

PC(1台目)からサーバーへのデータ構築が完了したら、次はスマホを同じ同期ネットワークに参加させます。面倒なURLやパスワードの入力は不要で、PCに表示させたQRコードをスマホで読み取るだけで設定が完了します。作業中はスマホのTailscaleがオンになっていることを確認してください。

1. PC側でQRコードを表示する

PCのObsidianでSelf-hosted LiveSyncの設定画面を開き、上部のタブから🧙‍♂️を選びます。「他のデバイスのセットアップ」の項目にある「QRコードを表示」をクリックします。

スクリーンショット 2026-03-13 155352.png

警告画面が出たら、「For your eyes only」の矢印をクリックするとQRコードが表示されます。このQRコードにはサーバーのパスワード等が含まれているため、人前での取り扱いには注意してください。

スクリーンショット 2026-03-13 155556.png

2. スマホ側でセットアップを開始する

Obsidianの設定から「コミュニティプラグイン」を開き、「Self-hosted LiveSync」を検索してインストールし、有効化します。有効化してプラグインの設定画面を開くと、初期設定ウィザードが立ち上がります。ウィザードが立ち上がったら、今回は2台目なので下側の「I am adding a device to an existing synchronisation setup」を選択し、「Yes, I want to add this device to my existing synchronisation」をタップします。

Screenshot_20260313_155507_Obsidian.jpg

3. QRコードを読み取る

設定のインポート方法を聞かれるので、真ん中の「Scan a QR Code」を選択し、「Scan the QR code displayed on an active device using this device's camera」をタップします。カメラを起動して、PCの画面に表示されたQRコードを読み取ります。

Screenshot_20260313_155529_Obsidian.jpg

4. サーバーへ参加する

QRコードの読み取りに成功すると、同期設定が自動で入力されます。「Mostly Complete」という画面が出るので、「My remote server is already set up. I want to join this device.」を選択して「Proceed to the next step」をタップします。

Screenshot_20260313_155700_Obsidian.jpg

5. データを取得する

最後に「Setup Complete」の画面が出ます。「Restart and Fetch Data」をタップします。

Screenshot_20260313_155714_Obsidian.jpg

6. マージの設定

Obsidianが自動的に再読み込みされます。PCとスマホの保管庫の内容に違いがある場合は「There may be differences between the files in this Vault and the server.」を選択します。

Screenshot_20260313_162624_Obsidian.jpg

「I have created a backup of my Vault.」または「I understand the risks and will proceed without a backup.」を選択して、「Reset and Resume Synchronisation」をタップします。

Screenshot_20260313_162633_Obsidian.jpg

3台目以降も同じように簡単に追加することができます。

参考文献

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?