# Production-like compose services: app: build: context: . ports: - "3000:3000" environment: DATABASE_URL: postgresql://otto:otto@db:5432/otto GEOAPIFY_API_KEY: ${GEOAPIFY_API_KEY} TICKETMASTER_API_KEY: ${TICKETMASTER_API_KEY} LLM_API_KEY: ${LLM_API_KEY} LLM_BASE_URL: ${LLM_BASE_URL:-https://openrouter.ai/api/v1} LLM_MODEL: ${LLM_MODEL:-openai/gpt-4o-mini} depends_on: db: condition: service_healthy db: image: postgres:16-alpine environment: POSTGRES_USER: otto POSTGRES_PASSWORD: otto POSTGRES_DB: otto volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U otto -d otto"] interval: 5s timeout: 5s retries: 5 restart: unless-stopped volumes: pgdata: