見出し画像

Obsidianの同期を自鯖で(始末書)

やろうとした事

自分でホスティングしてObsidianのデータを同期するプラグインを見つけたから試してみたくてね……
ふむふむ、これを使うにはCouchDBを動かす必要があるのか、と。

やらかした事

CouchDBを構築するには、Dockerのイメージを使用するのが一番簡単です。

https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/setup_own_server_ja.md

よし、じゃあDocker入れるところからやな、と張り切ったわけですよ。
(ちなみに手元のPCにはWSLなUbuntuとDockerが入ってる)

んじゃ、ちょいと試してみるか……

docker run hello-world
いや、お前じゃねーよ

古いDockerを消してdocker-ceに入れ替えてっと……

sudo dnf remove docker
sudo dnf install docker-ce

設定ファイルも用意したし、走らせてみるか~

docker run -v ./local.ini:/opt/couchdb/etc/local.ini -p 5984:5984 couchdb

はい、ここでWebサービスが死にました。
正確には、生きてるんだけど外からアクセスできなくなった感じ。
よくあるのはブリッジ(docker0)が既存のネットワークアドレスと衝突してるケースなのだけど、今回はそうじゃなかった。

実は少し前にfail2ban対応でfirewalldに独自の設定入れてて、それとDockerの入れた転送設定がぶつかって全アクセス遮断しちゃった感じですね。とほほ……

本来やりたかった事

違うんだ、別にDockerで遊びたかったわけじゃなくてCouchDBを動かすのが目的なんだ。
というわけで直接インストールしました。
詳細なやり方はここに。

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://couchdb.apache.org/repo/couchdb.repo
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release epel-next-release
sudo dnf install couchdb

インストールしたら、Docker版の時に用意した設定ファイルを流用して、有効化と実行と……

cp ./local.ini /opt/couchdb/etc
sudo systemctl enable couchdb
sudo systemctl start couchdb
あっさり動いた……あの苦労はなんだったんだw

プラグインもすんなり動くし……

直接ポート叩いてるけど、ひとまず動作。

あとはnginxの設定でリバースプロキシ貼って完成っと。
(表向きはhttpsになるからスマホからのアクセスもバッチリ)

location /hogehoge_db/ {
    proxy_pass http://localhost:5984/;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_redirect off;
    proxy_buffering off;
}

まとめ

SSH閉じちゃってOS入れ直しとかも何度か経験してる身としては、まぁ軽い方の失敗だと思うよw

プラグインを使ってみた感想としては、完全にデータの同期を意識しなくて良くなるというか、使用感がクラウドのそれっぽくなる感じ。(まさにLive Sync)
ただ、履歴は追いづらいからバックアップとしては並行してgitを使うとかでもいいかもしれない。

参考資料

いいなと思ったら応援しよう!