version: "3.8"

services:
  gateway:
    build:
      context: ../../
      dockerfile: deploy/docker/Dockerfile
    container_name: stateset-gateway
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - GATEWAY_PORT=8080
      - GATEWAY_HOST=0.0.0.0
      - DB_PATH=/app/data/store.db
      - NODE_ENV=production
      # Channel tokens (uncomment as needed)
      # - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
      # - DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN}
      # - SLACK_BOT_TOKEN=${SLACK_BOT_TOKEN}
      # - SLACK_APP_TOKEN=${SLACK_APP_TOKEN}
      # - WHATSAPP_AUTH_DIR=/app/data/whatsapp-auth
      # - GOOGLE_CHAT_CREDENTIALS=${GOOGLE_CHAT_CREDENTIALS}
      # - GOOGLE_CHAT_SUBSCRIPTION=${GOOGLE_CHAT_SUBSCRIPTION}
    volumes:
      - gateway-data:/app/data
    healthcheck:
      test: ["CMD", "node", "-e", "const http = require('http'); http.get('http://localhost:8080/health', (r) => { process.exit(r.statusCode === 200 ? 0 : 1); }).on('error', () => process.exit(1));"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 15s

volumes:
  gateway-data:
    driver: local
