ソフトウェア/obsidian の履歴(No.5)
更新使い勝手の良い MarkDown 形式のメモアプリとして obsidian が有名らしいです†
例えば以下のような記事が見つかります。
さようなら、全てのエヴァーノート - 本しゃぶり
https://honeshabri.hatenablog.com/entry/Evernote_to_Obsidian
ローカル環境で動作し、Markdownで書いたノートをつなげるアプリ「Obsidian」とは - 増井敏克
https://gihyo.jp/article/2022/11/obsidian-01
個人的には数式を含めた長大な MarkDown をもたつくことなく表示してくれるので助かっています。
(Boostnote だと長くなるともたついて仕事にならなかったり)
目次†
自家サーバーで obsidian を動かす†
Obsidian の Self-hosted LiveSync を使ってみた - kogad's blog
https://kogad.net/posts/obsidian-self-hosted-live-sync
Apache CouchDB の公式 Docker イメージ
https://hub.docker.com/_/couchdb
CouchDBのセットアップ方法 - obsidian-livesync/docs/setup_own_server_ja.md
https://qiita.com/RYO_/items/3d27598ca2e0651f6c64
あたりを見ながらやりました
データベースの設置†
docker で CouchDB を動かすのが良いようです
CouchDBのセットアップ方法 - obsidian-livesync/docs/setup_own_server_ja.md
https://qiita.com/RYO_/items/3d27598ca2e0651f6c64
をほぼそのままなぞる形で、
couchdb-obsidian-server.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
を作成し、
LANG: console $ docker run -d --restart always -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=<password> -v ./couchdb-obsidian-server.ini:/opt/couchdb/etc/local.ini -p 5984:5984 couchdb
これでサーバーが起動しました。
https でアクセス可能にする†
apache2 が動作しているサーバーだったので、
/etc/apache2/sites-enabled/default-ssl.conf に
<Location /path/to/db> Order deny,allow Allow from all </Location> RequestHeader set X_FORWARDED_PROTO 'https' ProxyPass /path/to/db http://localhost:5984/ ProxyPassReverse /path/to/db http://localhost:5984/
を追加することで https://example.com/path/to/db へアクセスすると CouchDB へのログインを求められるようになりました。
Obsidian の設定†
左側でコミュニティプラグインを選択して「コミュニティプラグインを有効化」
検索ボックスで livesync を検索して「インストール」
Welcome画面で Open setting dialog
Remote Database configuration にて
- URI = https://example.com/path/to/db
- Username = admin
- Password = <password> (コンソールで与えた値)
- Database name = obsidian (任意に設定可能)
を与え、
- [Test] で "Connected to <Database name>" と表示されれば Ok
- [Check] でエラーがないことも確認しておく
Sync Settings の Presets で LiveSync を選択して Apply
ここで obsidian を閉じて、再度起動します†
これをしないといろいろうまく行かなくて苦労することにorz
たぶんこれで同期がとれるようになったはず。
便利そうなプラグイン†
- Self-hosted LiveSync 自家サーバーを介したライブ同期を実現する
- ReadInLator Webページをクリップして後で読めるようにする
- Text Extractor & Omnisearch 画像からテキストを抽出&検索できるようにする
不具合対処†
HTTP:GET failed / TypeError:Failed to fetch / Replication error / There was a problem getting docs.†
2024/5/7 1:00:57->Replication activated 2024/5/7 1:01:00->HTTP:GET to:/<hogehoge>.md?revs=true&latest=true&open_revs=<foobaa> -> failed 2024/5/7 1:01:00->TypeError:Failed to fetch 2024/5/7 1:01:00->Replication error 2024/5/7 1:01:00->Error:There was a problem getting docs. 2024/5/7 1:01:00->Replication stopped. 2024/5/7 1:01:00->Replication error
のようなエラーが出て同期ができなくなってしまった。
データベースへの書き込みはできているみたいだけれど、データを読み出せない。
<hogehoge> の部分には % でエスケープされた文字列が並んでおり、URL デコードすれば記憶にある日本語ファイル名が表示される。