services: db: image: postgres:16 environment: POSTGRES_USER: ${POSTGRES_USER:-flowpilot} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-flowpilot} POSTGRES_DB: ${POSTGRES_DB:-flowpilot} ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 12 restart: unless-stopped app: build: . ports: - "5000:5000" environment: DATABASE_URL: postgresql://${POSTGRES_USER:-flowpilot}:${POSTGRES_PASSWORD:-flowpilot}@db:5432/${POSTGRES_DB:-flowpilot} JWT_SECRET: ${JWT_SECRET:?JWT_SECRET must be set to at least 32 characters} CORS_ORIGIN: ${CORS_ORIGIN:-http://localhost:5000} ENABLE_SCHEDULER: "true" depends_on: db: condition: service_healthy restart: unless-stopped volumes: pgdata: