services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: hotel POSTGRES_PASSWORD: hotel POSTGRES_DB: hotel ports: - "54329:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U hotel"] interval: 5s timeout: 3s retries: 10 redis: image: redis:7-alpine ports: - "6379:6379" api: build: . environment: DATABASE_URL: postgresql+psycopg://hotel:hotel@postgres:5432/hotel REDIS_URL: redis://redis:6379/0 GROQ_API_KEY: ${GROQ_API_KEY:-} GROQ_MODEL: ${GROQ_MODEL:-llama-3.3-70b-versatile} PAYMENT_WEBHOOK_SECRET: ${PAYMENT_WEBHOOK_SECRET:-dev-payment-secret} FRONT_DESK_WEBHOOK_SECRET: ${FRONT_DESK_WEBHOOK_SECRET:-dev-desk-secret} EMBEDDER: minilm ports: - "8767:8000" depends_on: postgres: condition: service_healthy redis: condition: service_started worker: build: . environment: DATABASE_URL: postgresql+psycopg://hotel:hotel@postgres:5432/hotel REDIS_URL: redis://redis:6379/0 GROQ_API_KEY: ${GROQ_API_KEY:-} GROQ_MODEL: ${GROQ_MODEL:-llama-3.3-70b-versatile} PAYMENT_WEBHOOK_SECRET: ${PAYMENT_WEBHOOK_SECRET:-dev-payment-secret} FRONT_DESK_WEBHOOK_SECRET: ${FRONT_DESK_WEBHOOK_SECRET:-dev-desk-secret} EMBEDDER: minilm command: ["worker"] depends_on: postgres: condition: service_healthy redis: condition: service_started