version: '3.2' services: litellm: container_name: litellm image: litellm/litellm:latest restart: unless-stopped env_file: - .env volumes: # - /home/trav/dkr/litellm/config/config.yaml:/app/config.yaml # - /home/trav/dkr/litellm/config/model_config.yaml:/app/model_config.yaml # - /home/trav/dkr/litellm/config/litellm_settings.yaml:/app/litellm_settings.yaml # - /home/trav/dkr/litellm/config/router_settings.yaml:/app/router_settings.yaml # - /home/trav/dkr/litellm/config/general_settings.yaml:/app/general_settings.yaml - ./config/config.yaml:/app/config.yaml - ./config/model_config.yaml:/app/model_config.yaml - ./config/litellm_settings.yaml:/app/litellm_settings.yaml - ./config/router_settings.yaml:/app/router_settings.yaml - ./config/general_settings.yaml:/app/general_settings.yaml command: - "--config=/app/config.yaml" environment: DATABASE_URL: ${DATABASE_URL} LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY} LITELLM_SALT_KEY: ${LITELLM_SALT_KEY} UI_USERNAME: ${UI_USERNAME} UI_PASSWORD: ${UI_PASSWORD} STORE_MODEL_IN_DB: "True" # Provider Keys OPENAI_API_KEY: ${OPENAI_API_KEY} COHERE_API_KEY: ${COHERE_API_KEY} ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY} LITELLM_LOG: ${LITELLM_LOG:-WARN} LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY} LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY} LANGFUSE_BASE_URL: ${LANGFUSE_OTEL_HOST} LANGFUSE_OTEL_HOST: ${LANGFUSE_BASE_URL} USE_PRISMA_MIGRATE: ${USE_PRISMA_MIGRATE} networks: - llm-net - proxy-little expose: - 4000 healthcheck: # Simple TCP port check using Python - no auth or external tools required test: ["CMD", "python", "-c", "import socket; s = socket.socket(); s.settimeout(5); s.connect(('localhost', 4000)); s.close()"] interval: 30s timeout: 10s retries: 3 networks: llm-net: driver: bridge name: llm-net proxy-little: external: true