Spaces:
Paused
Paused
| version: "3.11" | |
| services: | |
| litellm: | |
| build: | |
| context: . | |
| args: | |
| target: runtime | |
| image: ghcr.io/berriai/litellm:main-stable | |
| ######################################### | |
| ## Uncomment these lines to start proxy with a config.yaml file ## | |
| # volumes: | |
| # - ./config.yaml:/app/config.yaml <<- this is missing in the docker-compose file currently | |
| # command: | |
| # - "--config=/app/config.yaml" | |
| ############################################## | |
| ports: | |
| - "4000:4000" # Map the container port to the host, change the host port if necessary | |
| environment: | |
| DATABASE_URL: "postgresql://llmproxy:dbpassword9090@db:5432/litellm" | |
| STORE_MODEL_IN_DB: "True" # allows adding models to proxy via UI | |
| env_file: | |
| - .env # Load local .env file | |
| depends_on: | |
| - db # Indicates that this service depends on the 'db' service, ensuring 'db' starts first | |
| healthcheck: # Defines the health check configuration for the container | |
| test: [ "CMD-SHELL", "wget --no-verbose --tries=1 http://localhost:4000/health/liveliness || exit 1" ] # Command to execute for health check | |
| interval: 30s # Perform health check every 30 seconds | |
| timeout: 10s # Health check command times out after 10 seconds | |
| retries: 3 # Retry up to 3 times if health check fails | |
| start_period: 40s # Wait 40 seconds after container start before beginning health checks | |
| db: | |
| image: postgres:16 | |
| restart: always | |
| container_name: litellm_db | |
| environment: | |
| POSTGRES_DB: litellm | |
| POSTGRES_USER: llmproxy | |
| POSTGRES_PASSWORD: dbpassword9090 | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - postgres_data:/var/lib/postgresql/data # Persists Postgres data across container restarts | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -d litellm -U llmproxy"] | |
| interval: 1s | |
| timeout: 5s | |
| retries: 10 | |
| prometheus: | |
| image: prom/prometheus | |
| volumes: | |
| - prometheus_data:/prometheus | |
| - ./prometheus.yml:/etc/prometheus/prometheus.yml | |
| ports: | |
| - "9090:9090" | |
| command: | |
| - "--config.file=/etc/prometheus/prometheus.yml" | |
| - "--storage.tsdb.path=/prometheus" | |
| - "--storage.tsdb.retention.time=15d" | |
| restart: always | |
| volumes: | |
| prometheus_data: | |
| driver: local | |
| postgres_data: | |
| name: litellm_postgres_data # Named volume for Postgres data persistence | |