services: db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-tryme} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-tryme_secret} POSTGRES_DB: ${POSTGRES_DB:-trymedb} volumes: - tryme_pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER:-tryme} -d $${POSTGRES_DB:-trymedb}"] interval: 5s timeout: 5s retries: 10 app: build: context: . dockerfile: Dockerfile restart: unless-stopped depends_on: db: condition: service_healthy ports: - "${APP_PORT:-8000}:8000" environment: DATABASE_URL: ${DATABASE_URL:-postgresql+psycopg://tryme:tryme_secret@db:5432/trymedb} ADMIN_USER: ${ADMIN_USER:-moderator} DEV_AUTH_ENABLED: ${DEV_AUTH_ENABLED:-true} SEED_STARTER_QUIZZES: ${SEED_STARTER_QUIZZES:-true} SESSION_SECRET: ${SESSION_SECRET:-change-me-in-production} AUTH0_DOMAIN: ${AUTH0_DOMAIN:-} AUTH0_CLIENT_ID: ${AUTH0_CLIENT_ID:-} AUTH0_CLIENT_SECRET: ${AUTH0_CLIENT_SECRET:-} AUTH0_AUDIENCE: ${AUTH0_AUDIENCE:-} AUTH0_CALLBACK_URL: ${AUTH0_CALLBACK_URL:-http://localhost:8000/api/v1/auth/callback} FRONTEND_BASE_URL: ${FRONTEND_BASE_URL:-http://localhost:8000} volumes: tryme_pgdata: