新增 CT124 Obsidian LiveSync 操作手冊
CT124 部署 CouchDB 3.5 當 obsidian-livesync 同步後端(/opt/livesync, :5984 僅 LAN),套用外掛要求的 require_valid_user/CORS/size 上限,建 obsidiandb。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
90
CT124_ObsidianLiveSync操作手冊_20260710.md
Normal file
90
CT124_ObsidianLiveSync操作手冊_20260710.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# CT124 Obsidian LiveSync(自架 CouchDB 同步後端)— 操作手冊
|
||||
|
||||
> 主機:CT124(192.168.42.124,Ubuntu 24.04 LXC) | 位置:`/opt/livesync`
|
||||
> 用途:給 [obsidian-livesync](https://github.com/vrtmrz/obsidian-livesync) 外掛用的自架即時同步後端(CouchDB),多裝置同步 Obsidian vault
|
||||
|
||||
---
|
||||
|
||||
## 一、基本資訊
|
||||
|
||||
- 版本:**CouchDB 3.5**(`couchdb:3.5`,實跑 3.5.2)。obsidian-livesync **外掛本身**裝在各裝置的 Obsidian「社群外掛」,不在這台。
|
||||
- 容器:`livesync_couchdb`(`restart: unless-stopped`,network `livesync_default`)
|
||||
- 埠:`5984 → 5984`(**僅 LAN,純 HTTP,無對外、不走 NPM**)
|
||||
- 資料庫(給 Obsidian 用):`obsidiandb`;系統 DB `_users`/`_replicator`/`_global_changes` 已建
|
||||
- 帳密:CouchDB 管理員 `livesync` / 密碼在 `/opt/livesync/.env`(`COUCHDB_PASSWORD`,亦存密碼管理器)
|
||||
- **未掛 Watchtower**:DB 不做自動更新,避免主版本跳動弄壞資料;更新一律手動(見四)。
|
||||
- 官方:https://github.com/vrtmrz/obsidian-livesync | CouchDB 設定文件:`docs/setup_own_server.md`
|
||||
|
||||
## 二、操作
|
||||
|
||||
```bash
|
||||
cd /opt/livesync
|
||||
docker compose up -d # 啟動 / 套用設定
|
||||
docker compose ps
|
||||
docker compose logs -f couchdb
|
||||
curl -sf http://127.0.0.1:5984/_up && echo OK # 健康檢查
|
||||
```
|
||||
|
||||
## 三、Obsidian 外掛設定(各裝置)
|
||||
|
||||
1. Obsidian → 設定 → 社群外掛 → 搜尋 **Self-hosted LiveSync** → 安裝並啟用。
|
||||
2. 外掛設定用 **Setup wizard / Remote Database**,填:
|
||||
- URI:`http://192.168.42.124:5984`(內網)
|
||||
或跨網段經 Headscale tailnet:`http://ip-192-168-42-124.internal.lotimmy.com:5984`
|
||||
- Username / Password:見 `/opt/livesync/.env`
|
||||
- Database name:`obsidiandb`
|
||||
- **End-to-End Encryption**:建議開啟並設 passphrase(資料在 CouchDB 內即為密文;各裝置要填同一組 passphrase)。
|
||||
3. 先在一台把 vault 推上去(Initialize / Rebuild everything),其餘裝置再 `Fetch` 拉下來。
|
||||
|
||||
## 四、資料與備份 / 更新
|
||||
|
||||
| 項目 | 位置 |
|
||||
|---|---|
|
||||
| CouchDB 資料 | `./data`(→ 容器 `/opt/couchdb/data`) |
|
||||
| CouchDB 設定(持久化) | `./local.d/docker.ini`(REST 改的設定寫在這) |
|
||||
| 帳密 | `./.env` |
|
||||
|
||||
```bash
|
||||
# 備份(檔案層,停服務較保險)
|
||||
cd /opt/livesync && docker compose stop \
|
||||
&& tar -czf livesync-data-$(date +%F).tar.gz data local.d .env docker-compose.yml \
|
||||
&& docker compose start
|
||||
|
||||
# 更新(手動;先確認有近期備份)
|
||||
cd /opt/livesync
|
||||
# 視需要改 docker-compose.yml 的 image tag,再:
|
||||
docker compose pull && docker compose up -d
|
||||
```
|
||||
|
||||
> obsidian-livesync 長期使用會累積歷史修訂,DB 會膨脹。在外掛內定期執行 **Compact database** 或 **Rebuild everything** 可回收空間。
|
||||
|
||||
## 五、初始化設定(重建時參考)
|
||||
|
||||
新容器起來後,曾對 CouchDB 套用 obsidian-livesync 要求的參數(node `_local`),重建時照跑:
|
||||
|
||||
```bash
|
||||
cd /opt/livesync; set -a; . ./.env; set +a
|
||||
COUCH=http://127.0.0.1:5984; AUTH="$COUCHDB_USER:$COUCHDB_PASSWORD"
|
||||
for db in _users _replicator _global_changes; do curl -s -u "$AUTH" -X PUT "$COUCH/$db"; done
|
||||
put(){ curl -s -u "$AUTH" -X PUT "$COUCH/_node/_local/_config/$1" -H "Content-Type: application/json" -d "$2"; }
|
||||
put chttpd/require_valid_user '"true"'
|
||||
put chttpd_auth/require_valid_user '"true"'
|
||||
put httpd/enable_cors '"true"'
|
||||
put chttpd/enable_cors '"true"'
|
||||
put chttpd/max_http_request_size '"4294967296"'
|
||||
put couchdb/max_document_size '"50000000"'
|
||||
put cors/credentials '"true"'
|
||||
put cors/origins '"app://obsidian.md,capacitor://localhost,http://localhost"'
|
||||
curl -s -u "$AUTH" -X PUT "$COUCH/obsidiandb"
|
||||
```
|
||||
|
||||
驗證:匿名 `curl :5984/obsidiandb` 應回 **401**,帶帳密應回 **200**。
|
||||
|
||||
## 六、注意事項
|
||||
|
||||
- **僅 LAN、純 HTTP**:密碼以明文在網路上傳輸,只在信任的內網/Headscale tailnet 使用。務必在外掛開啟 E2E 加密,vault 內容才不會以明文落地 CouchDB。
|
||||
- **手機同步的坑**:Obsidian **手機版要求後端有「有效 SSL 憑證」**,純 HTTP 或自簽多半連不上。
|
||||
- 本台 Tailscale 接的是自架 **Headscale**(tailnet 網域 `internal.lotimmy.com`),**不支援** `tailscale cert`/`tailscale serve --https`(無憑證簽發)。因此桌面版可直接用(HTTP over LAN/tailnet),**手機版無法只靠 tailnet 走通**。
|
||||
- 要支援手機,需把 `:5984` 掛到 **NPM 反代 + 真實憑證的網域**(如 `couchdb.lotimmy.com`)——這會讓服務**對外**,與目前「僅 LAN」的取捨相反,要時再開。NPM 反代需 `client_max_body_size` 放大、關 `proxy_buffering`。
|
||||
- **不要**把 `couchdb:3.5` 改成 `:latest` 自動更新:CouchDB 主版本升級可能需要遷移,DB 應手動、有備份地升。
|
||||
- 這台的 Docker 若掛,連鎖影響見 [`CT124_故障復原_20260529.md`](CT124_故障復原_20260529.md);但本服務僅 LAN、不經 NPM,不受 443/NPM 影響。
|
||||
@@ -20,3 +20,4 @@ Claude Code 工作規範見 [`CLAUDE.md`](CLAUDE.md)。
|
||||
| [CT124_Redash操作手冊_20260622.md](CT124_Redash操作手冊_20260622.md) | CT124 | 自架 Redash 10.1.0(6 容器,`:5001`,僅 LAN)操作;附 DB 在匿名 volume 的備份風險 |
|
||||
| [CT124_Picsur操作手冊_20260622.md](CT124_Picsur操作手冊_20260622.md) | CT124 | 自架 Picsur 0.5.6 圖床(`:8080` / `picsur.lotimmy.com`)操作、ShareX、備份;Watchtower 自動更新 |
|
||||
| [CT124_tinyauth操作手冊_20260702.md](CT124_tinyauth操作手冊_20260702.md) | CT124 | 自架 tinyauth v5 反代認證/SSO,兩實例(`:3005`/`tinyauth.lotimmy.com`、`:3006`/`tinyauth.timmy.edu.kg`);APPURL 不接受 IP、forward-auth 設定 |
|
||||
| [CT124_ObsidianLiveSync操作手冊_20260710.md](CT124_ObsidianLiveSync操作手冊_20260710.md) | CT124 | 自架 CouchDB 3.5(`:5984`,僅 LAN)當 obsidian-livesync 同步後端;附外掛設定、E2E、備份;手機需有效憑證的坑 |
|
||||
|
||||
Reference in New Issue
Block a user