services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: waggle POSTGRES_PASSWORD: waggle_dev POSTGRES_DB: waggle ports: - '5434:5432' volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U waggle"] interval: 5s timeout: 3s retries: 5 redis: image: redis:7-alpine ports: - '6381:6379' volumes: - redisdata:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 5 minio: image: minio/minio:latest ports: - '9000:9000' - '9001:9001' environment: MINIO_ROOT_USER: waggle MINIO_ROOT_PASSWORD: waggle_s3_dev volumes: - miniodata:/data command: server /data --console-address ":9001" healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 10s timeout: 5s retries: 5 # One-shot: creates the waggle-files bucket if it doesn't exist minio-init: image: minio/mc:latest depends_on: minio: condition: service_healthy entrypoint: > /bin/sh -c " mc alias set waggle http://minio:9000 waggle waggle_s3_dev && mc mb --ignore-existing waggle/waggle-files && mc anonymous set download waggle/waggle-files && echo 'Bucket waggle-files ready' " restart: "no" litellm: image: ghcr.io/berriai/litellm:main-latest ports: - '4000:4000' volumes: - ./litellm-config.yaml:/app/config.yaml # LiteLLM resolves `os.environ/` at request time inside the # container, so every provider referenced in litellm-config.yaml # needs a matching passthrough here. Guarded by # tests/docker-compose-litellm-env.test.ts — if you add a provider # in the config, the test will flag the missing passthrough. environment: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - OPENAI_API_KEY=${OPENAI_API_KEY} - GEMINI_API_KEY=${GEMINI_API_KEY} - XAI_API_KEY=${XAI_API_KEY} - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} - PERPLEXITY_API_KEY=${PERPLEXITY_API_KEY} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - MOONSHOT_API_KEY=${MOONSHOT_API_KEY} - DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY} - MISTRAL_API_KEY=${MISTRAL_API_KEY} - MINIMAX_API_KEY=${MINIMAX_API_KEY} - ZHIPU_API_KEY=${ZHIPU_API_KEY} - GENSPARK_API_KEY=${GENSPARK_API_KEY} - LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY:-sk-waggle-dev} command: --config /app/config.yaml volumes: pgdata: redisdata: miniodata: