- 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
1.9 KiB
1.9 KiB
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
Деплой
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)