# GlitchTip — self-hosted error tracking (Sentry-protocol compatible). # # This file is portable: it runs standalone on the production monitoring # host AND merges into the local Crewli dev stack via: # # docker compose -f docker-compose.yml -f docker-compose.glitchtip.yml up -d # # `make services` encapsulates the merge for local development. # # All configuration comes from docker/glitchtip/.env via env_file. Copy # docker/glitchtip/.env.example to docker/glitchtip/.env on first run. # # Per RFC-WS-7-OBSERVABILITY §3.1. See dev-docs/GLITCHTIP.md for the # operations runbook (boot, project provisioning, DSN handling, backup, # restore). services: glitchtip-postgres: image: postgres:16-alpine container_name: glitchtip-postgres env_file: - ./docker/glitchtip/.env volumes: - glitchtip_postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d glitchtip"] interval: 5s timeout: 5s retries: 10 restart: unless-stopped glitchtip-redis: image: valkey/valkey:7-alpine container_name: glitchtip-redis volumes: - glitchtip_redis_data:/data healthcheck: test: ["CMD", "valkey-cli", "ping"] interval: 5s timeout: 5s retries: 10 restart: unless-stopped glitchtip-web: image: glitchtip/glitchtip:6.1.6 container_name: glitchtip-web depends_on: glitchtip-postgres: condition: service_healthy glitchtip-redis: condition: service_healthy env_file: - ./docker/glitchtip/.env command: ["sh", "-c", "./bin/run-migrate.sh && ./bin/run-web.sh"] ports: - "127.0.0.1:8200:8000" volumes: - glitchtip_uploads:/code/uploads healthcheck: test: ["CMD", "python", "-c", "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/api/0/', timeout=4).status==200 else 1)"] interval: 10s timeout: 5s retries: 6 start_period: 60s restart: unless-stopped glitchtip-worker: image: glitchtip/glitchtip:6.1.6 container_name: glitchtip-worker command: ./bin/run-celery-with-beat.sh depends_on: glitchtip-postgres: condition: service_healthy glitchtip-redis: condition: service_healthy env_file: - ./docker/glitchtip/.env volumes: - glitchtip_uploads:/code/uploads restart: unless-stopped volumes: glitchtip_postgres_data: glitchtip_redis_data: glitchtip_uploads: