Initial Obsidian LiveSync (CouchDB) deployment

- couchdb:3, bridge, 127.0.0.1:5984, journald
- couchdb-config/local.ini с CORS для Obsidian (app://obsidian.md)
- max_http_request_size 4 ГБ для больших vault-ов
- .env и data/ исключены из git
This commit is contained in:
striker
2026-05-08 04:50:18 +03:00
commit 5b4628049e
6 changed files with 140 additions and 0 deletions

49
CLAUDE.md Normal file
View File

@@ -0,0 +1,49 @@
# CLAUDE.md — obsidian-livesync
## Что
CouchDB для self-hosted Obsidian LiveSync на str-u-01 (45.10.53.148). Доступ через `obs.striker.su`.
## Стек
- `couchdb:3` (Apache CouchDB) на `127.0.0.1:5984`
- bind-mount `./data` (БД), `./couchdb-config/local.ini` (CORS для Obsidian)
- `restart: unless-stopped`, healthcheck на `/_up`
- log-driver: journald
## Структура
```
obsidian-livesync/
├── docker-compose.yml
├── couchdb-config/local.ini # CORS, max_http_request_size 4G
├── .env.example # шаблон, реальный .env только на сервере
├── .gitignore # исключает .env, data/
├── README.md
└── CLAUDE.md
```
## Деплой
```bash
ssh striker@str-u-01.striker.su
cd /opt/docker/sites/obsidian-livesync
git pull
docker compose pull && docker compose up -d
```
## nginx
vhost: `/etc/nginx/conf.d/obs.striker.su` (ssl + reverse-proxy на 127.0.0.1:5984).
**Важно для CouchDB:**
- `proxy_set_header Host $host` (CouchDB чувствителен)
- `client_max_body_size 4G` (большие vault-ы)
- `proxy_buffering off` (long-poll changes feed)
- WebSocket headers (changes feed continuous)
## Секреты
`.env` на сервере (не в git): `COUCHDB_USER` и `COUCHDB_PASSWORD`. Также скопированы в Vaultwarden (запись "obsidian-livesync str-u-01" / поиск).
## Системные БД
После первого запуска CouchDB требует создать `_users`, `_replicator`, `_global_changes` через PUT (см. README).
## Plugin Self-hosted LiveSync
- URI: `https://obs.striker.su`
- Auth: те же что в `.env`
- Database: любое имя (рекомендуется по vault-у, например `obsidian-main`)
- Use Custom Request Handler: **off** (не нужно — мы не на Cloudflare)