feat(infra): GlitchTip self-hosted error tracking (#204 devops) #205

Merged
lekss361 merged 2 commits from feat/204-glitchtip-infra into main 2026-05-16 15:08:50 +00:00

2 commits

Author SHA1 Message Date
lekss361
ffaa36336a fix(infra): GlitchTip profiles + SQL safety + mem_limit (#204 review fixes)
- Add profiles: ["glitchtip"] to glitchtip-web and glitchtip-worker so
  plain `compose up -d` does not start them before secrets/DB are ready
- Fix SQL injection vector: pass password via psql -v variable + format(%L)
  instead of bare shell interpolation in heredoc
- glitchtip-web mem_limit: 256m -> 512m (upstream minimum for Django+gunicorn)
- glitchtip-worker mem_limit: 256m -> 384m (handles CELERY_WORKER_AUTOSCALE)
- Move CELERY_WORKER_AUTOSCALE to worker only (no-op on gunicorn web service)
- Pin image glitchtip/glitchtip:latest -> 6.1.6
- Add healthcheck to glitchtip-web (wget /api/0/)
- bootstrap: use --profile glitchtip for pull/up; add COMPOSE_PROFILES note
- bootstrap: use wget (consistent with compose healthcheck) in wait loop
2026-05-16 18:01:50 +03:00
lekss361
a79ee833f7 feat(infra): add GlitchTip self-hosted error tracking (#204)
Adds glitchtip-web + glitchtip-worker to docker-compose.prod.yml using
the shared postgres/redis services. Caddy proxies errors.gendsgn.ru to
glitchtip-web:8080 with auto-TLS. Bootstrap script handles DB creation
and first-run setup idempotently.

Env contract: GLITCHTIP_DB_PASS, GLITCHTIP_SECRET in .env;
GLITCHTIP_DSN and NEXT_PUBLIC_GLITCHTIP_DSN populated after UI setup.
2026-05-16 13:38:04 +03:00