services: postgres: image: postgres:17-alpine container_name: tickettracker-postgres restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-tickettracker} POSTGRES_USER: ${POSTGRES_USER:-tickettracker} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD muss gesetzt sein} volumes: - tickettracker_postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\""] interval: 10s timeout: 5s retries: 10 tickettracker: image: ${TICKETTRACKER_IMAGE:-git.d-razz.de/michael/tickettracker:latest} build: context: . container_name: tickettracker restart: unless-stopped depends_on: postgres: condition: service_healthy environment: DATABASE_URL: postgresql://${POSTGRES_USER:-tickettracker}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-tickettracker} PORT: 3000 BACKEND_PORT: 3001 API_PROXY_TARGET: http://127.0.0.1:3001 SERVE_FRONTEND: "false" NEXT_TELEMETRY_DISABLED: "1" SESSION_MAX_AGE_MS: ${SESSION_MAX_AGE_MS:-1209600000} COOKIE_SECURE: ${COOKIE_SECURE:-false} DB_POOL_SIZE: ${DB_POOL_SIZE:-10} ports: - "${APP_PORT:-3910}:3000" volumes: tickettracker_postgres_data: