gendesign/docker-compose.uptime.yml
Light1YT eb251ba7e7
All checks were successful
CI / changes (push) Successful in 13s
CI / changes (pull_request) Successful in 12s
CI / frontend-tests (push) Successful in 53s
CI / openapi-codegen-check (push) Successful in 1m58s
CI / frontend-tests (pull_request) Successful in 47s
CI / openapi-codegen-check (pull_request) Successful in 1m50s
CI / backend-tests (push) Successful in 8m54s
CI / backend-tests (pull_request) Successful in 8m45s
Deploy / changes (push) Successful in 6s
Deploy / build-backend (push) Successful in 2m50s
Deploy / build-frontend (push) Successful in 3m11s
Deploy / build-worker (push) Successful in 4m38s
Deploy / deploy (push) Successful in 2m1s
ci(infra): coverage-gate (#68) + OpenAPI codegen-assert (#69) + uptime monitoring (#75)
#68: pytest-cov + [tool.coverage] fail_under=65 (baseline 71%), backend-tests --cov + xml.
#69: openapi-codegen-check job (dump app.openapi() → openapi-typescript → git diff).
  Job использует node_modules-pinned openapi-typescript/prettier (НЕ npx --yes latest —
  иначе version-mismatch ложный diff). + regenerated api-types.ts из СВЕЖЕГО main openapi
  (8288 строк, включая #73 /freshness — синхронен).
#75: Uptime Kuma isolated stack + status.gendsgn.ru Caddy + external Telegram watchdog.
#77: no change — build cache достаточен.

Closes #68
Closes #69
Closes #75
Closes #77
2026-06-13 23:28:06 +05:00

57 lines
2.9 KiB
YAML
Raw Permalink 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.

# Uptime Kuma — self-hosted uptime monitoring + alerting (#75 B6-1).
#
# Деплоится ОТДЕЛЬНО от main-стека (свой compose-проект `gendesign-uptime`),
# по образцу docker-compose.obsidian.yml. НЕ входит в deploy.yml path-фильтры —
# main-pipeline (project `gendesign`, -f docker-compose.prod.yml) его НЕ трогает
# и НЕ пересоздаёт. Запуск/обновление — вручную (Anton), см. инструкцию ниже.
#
# docker network create gendesign_shared # один раз, обычно уже создан main-стеком
# docker compose -p gendesign-uptime -f docker-compose.uptime.yml up -d
#
# Caddy в main-стеке маршрутизирует status.gendsgn.ru → uptime-kuma:3001 через
# external network gendesign_shared (Caddyfile, блок status.gendsgn.ru).
#
# WHY отдельный контейнер, а не VPS: issue допускает доп-контейнер. Trade-off
# принят сознательно — если упадёт весь VPS, Kuma упадёт вместе с сайтом и не
# отправит алерт. Митигируется внешним «watchdog» (healthchecks.io / UptimeRobot
# free tier), который пингует https://gendsgn.ru/health извне — см. README-блок
# «External watchdog» ниже. Kuma покрывает per-endpoint/SSL/latency-мониторинг
# и self-hosted status-page; внешний пинг — last-resort «весь хост лёг».
#
# Лёгкий: образ ~250 МБ, idle RAM ~80-120 МБ. mem_limit держит его в узде.
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: gendesign-uptime-kuma
restart: unless-stopped
# expose (НЕ ports) — наружу не публикуем, фронтит Caddy через shared-сеть.
# Если нужен прямой доступ для первичной настройки без Caddy — временно
# раскомментируй ports ниже (127.0.0.1 only) и ходи через SSH-туннель.
expose:
- "3001"
# ports:
# - "127.0.0.1:3001:3001"
volumes:
# Persistent: SQLite-база Kuma (мониторы, история, настройки, нотификации).
- uptime_kuma_data:/app/data
healthcheck:
# Встроенный extra/healthcheck в образе louislam/uptime-kuma.
test: ["CMD", "extra/healthcheck"]
interval: 60s
timeout: 10s
retries: 3
start_period: 30s
networks:
- shared
mem_limit: 256m
volumes:
uptime_kuma_data:
networks:
# Та же external-сеть, что у main-стека (Caddy) и obsidian-стека.
# Создаётся вне compose: docker network create gendesign_shared
shared:
external: true
name: gendesign_shared