version: "3.9"

# LiteLLM — sovereign LLM router
# Run: DEEPSEEK_API_KEY=... OPENROUTER_API_KEY=... GROQ_API_KEY=... docker compose up -d
#
# ACTIVE keys: openrouter, deepseek, groq (set as env vars when running)
# PLACEHOLDER: gemini, zai, minimax, mistral, kimi (skipped until real keys)

services:
  litellm:
    image: ghcr.io/berriai/litellm:main-stable
    container_name: rmi-litellm
    network_mode: rmi_network
    volumes:
      - ./litellm-config.yaml:/app/config.yaml
    ports:
      - "127.0.0.1:4000:4000"
    environment:
      - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
      - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
      - GROQ_API_KEY=${GROQ_API_KEY:-}
      - MISTRAL_API_KEY=${MISTRAL_API_KEY:-}
      - KIMI_API_KEY=${KIMI_API_KEY:-}
    command: ["--config", "/app/config.yaml", "--port", "4000", "--num_workers", "2"]
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:4000/health/liveliness"]
      interval: 30s
      timeout: 5s
      retries: 3
