diff --git a/litellm/compose.yml b/litellm/compose.yml new file mode 100644 index 0000000..68c48cd --- /dev/null +++ b/litellm/compose.yml @@ -0,0 +1,60 @@ +services: + litellm: + image: docker.litellm.ai/berriai/litellm:main-stable + container_name: litellm + volumes: + - ./config.yaml:/app/config.yaml + command: + - "--config=/app/config.yaml" + environment: + DATABASE_URL: "postgresql://litellm:litellm@litellm_db:5432/litellm" + LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY} + LITELLM_SALT_KEY: ${LITELLM_SALT_KEY} + NVIDIA_NIM_API_KEY: ${NVIDIA_NIM_API_KEY} + depends_on: + - db + restart: always + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.litellm-redirect-web-secure.redirectscheme.scheme=https" + - "traefik.http.routers.litellm-web.middlewares=litellm-redirect-web-secure" + - "traefik.http.routers.litellm-web.rule=Host(`${TRAEFIK_HOST}`)" + - "traefik.http.routers.litellm-web.entrypoints=web" + - "traefik.http.routers.litellm-web-secure.rule=Host(`${TRAEFIK_HOST}`)" + - "traefik.http.routers.litellm-web-secure.tls.certresolver=resolver" + - "traefik.http.routers.litellm-web-secure.entrypoints=web-secure" + - "traefik.http.routers.litellm-web-secure.middlewares=security-headers@file" + - "traefik.http.services.litellm-web-secure.loadbalancer.server.port=4000" + - "traefik.docker.network=${NETWORK_NAME}" + - "com.centurylinklabs.watchtower.enable=true" + networks: + - compose_network + healthcheck: + test: + - CMD-SHELL + - python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:4000/health/liveliness')" + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + db: + image: postgres:16 + container_name: litellm_db + environment: + POSTGRES_DB: litellm + POSTGRES_USER: litellm + POSTGRES_PASSWORD: litellm + volumes: + - ../.data/litellm/db:/var/lib/postgresql/data + restart: always + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 5s + timeout: 5s + retries: 5 + networks: + - compose_network +networks: + compose_network: + name: ${NETWORK_NAME} + external: true diff --git a/litellm/config.yaml b/litellm/config.yaml new file mode 100644 index 0000000..da9d7fe --- /dev/null +++ b/litellm/config.yaml @@ -0,0 +1,5 @@ +model_list: + - model_name: qwen3.5 + litellm_params: + model: nvidia_nim/qwen/qwen3.5-397b-a17b + drop_params: true \ No newline at end of file