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:
49
CLAUDE.md
Normal file
49
CLAUDE.md
Normal 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)
|
||||
Reference in New Issue
Block a user