gendesign/docker-compose.obsidian.yml
lekss361 b0f5c38894 feat(deploy): split obsidian stack from main + path-filtered GHA
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-стека не влияет на основное приложение
2026-05-11 09:51:31 +03:00

41 lines
1.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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