version: "3.8"

services:
  ai-stack-deployer:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ai-stack-deployer-local
    environment:
      - NODE_ENV=development
      - PORT=3000
      - HOST=0.0.0.0
      - DOKPLOY_URL=${DOKPLOY_URL}
      - DOKPLOY_API_TOKEN=${DOKPLOY_API_TOKEN}
      - STACK_DOMAIN_SUFFIX=${STACK_DOMAIN_SUFFIX:-ai.flexinit.nl}
      - STACK_IMAGE=${STACK_IMAGE:-git.app.flexinit.nl/flexinit/agent-stack:latest}
      - RESERVED_NAMES=${RESERVED_NAMES:-admin,api,www,root,system,test,demo,portal}
    env_file:
      - .env
    restart: unless-stopped
    healthcheck:
      test:
        [
          "CMD",
          "bun",
          "--eval",
          "fetch('http://localhost:3000/health').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))",
        ]
      interval: 30s
      timeout: 3s
      retries: 3
      start_period: 5s
    networks:
      - ai-stack-network
    volumes:
      - ./src:/app/src:ro
      - ./client:/app/client:ro

networks:
  ai-stack-network:
    driver: bridge
