Zum Inhalt

LiteLLM

Einleitung und Rolle

LiteLLM ist das zentrale KI-Gateway der Infrastruktur. Es bündelt Modellanbieter hinter einer einheitlichen API, stellt eine Web-UI bereit und dient als stabiler Endpunkt für Clients wie Open WebUI oder Agenten. Zusätzlich ist LiteLLM mit Langfuse verbunden, sodass erfolgreiche und fehlgeschlagene Requests dort als Traces und Observability-Daten erfasst werden können.

Die öffentliche Route lautet litellm.marcosudau.com. LiteLLM nutzt eigene Authentifizierung beziehungsweise API-Keys.

Persistente Daten und Backup-Relevanz

Pfad Bedeutung Backup-Relevanz
/opt/selfhost/stacks/litellm/config.yaml Modell- und Callback-Konfiguration hoch
/opt/selfhost/secrets/litellm.env Secrets und Betriebsvariablen hoch, Werte nicht dokumentieren
/opt/selfhost/data/litellm/postgresql PostgreSQL-Datenbank hoch
/opt/selfhost/data/litellm/oauth-tokens persistente OAuth-Tokens für Provider wie ChatGPT/GitHub Copilot sehr hoch, nicht verändern

OAuth-Tokens dürfen nicht versehentlich gelöscht, migriert oder überschrieben werden.

Stack, Container und Docker Compose

Eigenschaft Wert
Stack-Verzeichnis /opt/selfhost/stacks/litellm/
Compose-Projekt litellm
App-Container litellm
DB-Container litellm-postgresql
App-Image docker.litellm.ai/berriai/litellm-database:main-stable
DB-Image postgres:16-alpine
Portbindung 127.0.0.1:4000:4000
Config-Mount /opt/selfhost/stacks/litellm/config.yaml:/app/config.yaml:ro
OAuth-Mount /opt/selfhost/data/litellm/oauth-tokens:/app/oauth-tokens

Der App-Container startet mit --config /app/config.yaml --port 4000.

Route und Caddy

Registry-ID Hostname Typ Upstream
litellm litellm.marcosudau.com reverse_proxy http://127.0.0.1:4000

Hostname-Änderungen sind kritisch, weil Clients, UI-Konfigurationen, API-Base-URLs und Integrationen diesen Hostnamen verwenden können.

Zugehörige Dienste und Abhängigkeiten

Dienst Rolle
PostgreSQL LiteLLM-Datenbank
Langfuse Observability/Tracing über Callback-Konfiguration
Open WebUI möglicher Client
Hermes/OpenClaw mögliche Agenten-Clients
Caddy HTTPS-Reverse-Proxy

Secrets und Umgebungsvariablen

Die Secret-Datei liegt unter /opt/selfhost/secrets/litellm.env. Werte werden nicht dokumentiert.

Key Zweck
LITELLM_MASTER_KEY API-/Admin-Schlüssel
LITELLM_DATABASE_URL Datenbankverbindung
LITELLM_SALT_KEY interne Kryptografie/Hashing
LITELLM_UI_USERNAME, LITELLM_UI_PASSWORD UI-Zugang
LANGFUSE_SECRET_KEY, LANGFUSE_PUBLIC_KEY, LANGFUSE_HOST Langfuse-Callback
CHATGPT_TOKEN_DIR, GITHUB_COPILOT_TOKEN_DIR persistente OAuth-Token-Verzeichnisse
Provider-Keys Modellanbieter/API-Zugänge

Wichtig: Für Langfuse wird LANGFUSE_HOST verwendet, nicht LANGFUSE_BASE_URL.

Betrieb und Prüfung

sudo docker compose -f /opt/selfhost/stacks/litellm/docker-compose.yml ps
curl -I http://127.0.0.1:4000/health/liveliness
curl -I https://litellm.marcosudau.com

Typische Stolperfallen: Tab-Zeichen in YAML, doppelte Env-Keys, interaktive OAuth-Device-Flows und versehentlich entfernte OAuth-Tokens.