Obsidian Self-hosted LiveSync (CouchDB) выведен в отдельный docker-compose stack и GHA workflow. Любой стек теперь редеплоится независимо. * docker-compose.obsidian.yml: только couchdb в shared external network * docker-compose.prod.yml: убрана couchdb-секция; caddy подключён к shared network для маршрута obsidian.gendsgn.ru → couchdb:5984 * .github/workflows/deploy-obsidian.yml: новый workflow с path-filters (триггерится только при изменениях obsidian-related файлов) * .github/workflows/deploy.yml: + path-filters (триггерится только при main-related файлах) + создание shared network в bootstrap * docs/obsidian-livesync.md: обновлены инструкции под split-архитектуру После push: 1. ssh gendesign 'docker network create gendesign_shared' (один раз) 2. Прописать COUCHDB_USER/PASSWORD в backend/.env.runtime 3. Добавить DNS A-record obsidian.gendsgn.ru → IP VPS 4. git push → GHA задеплоит обе части независимо Преимущества: - Изменения main не разрывают LiveSync клиентов - Изменения obsidian не рестартуют main - Падение obsidian-стека не влияет на основное приложение
41 lines
1.1 KiB
YAML
41 lines
1.1 KiB
YAML
# Obsidian Self-hosted LiveSync stack — CouchDB.
|
||
#
|
||
# Деплоится ОТДЕЛЬНО от main стека:
|
||
# docker compose -f docker-compose.obsidian.yml up -d
|
||
#
|
||
# Связан с main-stack через external network `gendesign_shared`. Caddy в
|
||
# main-stack маршрутизирует obsidian.gendsgn.ru → couchdb:5984 через эту сеть.
|
||
#
|
||
# Сеть должна быть создана один раз вручную:
|
||
# docker network create gendesign_shared
|
||
# (или используй scripts/setup-obsidian-stack.sh).
|
||
|
||
services:
|
||
couchdb:
|
||
image: couchdb:3
|
||
container_name: gendesign-couchdb
|
||
restart: unless-stopped
|
||
environment:
|
||
COUCHDB_USER: ${COUCHDB_USER:-obsidian}
|
||
COUCHDB_PASSWORD: ${COUCHDB_PASSWORD}
|
||
volumes:
|
||
- couchdb_data:/opt/couchdb/data
|
||
- couchdb_config:/opt/couchdb/etc/local.d
|
||
expose:
|
||
- "5984"
|
||
networks:
|
||
- shared
|
||
healthcheck:
|
||
test: ["CMD", "curl", "-fsS", "http://localhost:5984/_up"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
|
||
volumes:
|
||
couchdb_data:
|
||
couchdb_config:
|
||
|
||
networks:
|
||
shared:
|
||
external: true
|
||
name: gendesign_shared
|