# Umami analytics — bind localhost only; Caddy terminates TLS at umami.nomadro.com services: umami: image: ghcr.io/umami-software/umami:postgresql-latest restart: unless-stopped ports: - "127.0.0.1:3010:3000" environment: DATABASE_URL: postgresql://umami:${POSTGRES_PASSWORD}@db:5432/umami APP_SECRET: ${APP_SECRET} DISABLE_TELEMETRY: "1" depends_on: db: condition: service_healthy init: true healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:3000/api/heartbeat || exit 1"] interval: 15s timeout: 5s retries: 10 start_period: 40s db: image: postgres:15-alpine restart: unless-stopped environment: POSTGRES_DB: umami POSTGRES_USER: umami POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - umami_db_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U umami -d umami"] interval: 5s timeout: 5s retries: 10 volumes: umami_db_data: