Files
obsidian-livesync/CLAUDE.md
striker 5b4628049e 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
2026-05-08 04:50:18 +03:00

1.9 KiB
Raw Permalink Blame History

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)