# Development Docker Compose (self-contained). # Usage: # docker compose -f docker-compose.dev.yml up --build # # After first start the database migrations run automatically. # Stop with: docker compose -f docker-compose.dev.yml down services: app: build: context: . target: deps command: sh -c "npm run db:migrate && npm run dev" working_dir: /app volumes: - .:/app - /app/node_modules 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} WATCHPACK_POLLING: "true" 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: