Skip to content
BotServBotServ
Umgebungsvariablen.envDockerSecretsLokale KI

Umgebungsvariablen sicher nutzen

Umgebungsvariablen für lokale KI und Self-Hosting sicher nutzen. .env-Dateien, Docker und Best Practices.

S

schutzgeist

3 min read
Umgebungsvariablen sicher nutzen

Umgebungsvariablen sicher nutzen

Was dieser Artikel über Umgebungsvariablen behandelt

  • Was Umgebungsvariablen sind und wofür man sie nutzt.
  • Wie .env-Dateien funktionieren.
  • Sicherheitsregeln für lokale KI-Projekte.
  • Wie Docker Compose Umgebungsvariablen verarbeitet.
  • Typische Fehler und bessere Alternativen.

Einleitung: Umgebungsvariablen sicher nutzen

Umgebungsvariablen sind eine einfache Möglichkeit, Konfiguration von Code zu trennen. Passwörter, API-Schlüssel und Datenbank-URLs landen so nicht direkt im Quellcode. In lokalen KI-Projekten werden sie häufig verwendet, um Ollama, Open WebUI, Docker-Container und Agenten zu konfigurieren. Wer sie richtig nutzt, vermeidet viele Sicherheitsprobleme.

Dieser Artikel richtet sich an Einsteiger. Er zeigt den Umgang mit Umgebungsvariablen, erklärt typische Fallen und zeigt, wann bessere Lösungen wie verschlüsselte .env-Dateien oder Secret-Manager sinnvoll werden.

Was sind Umgebungsvariablen?

Eine Umgebungsvariable ist ein Wert, der dem laufenden Prozess zur Verfügung steht. Programme lesen sie aus und verwenden sie als Konfiguration. Beispiele:

  • DATABASE_URL
  • OPENAI_API_KEY
  • OLLAMA_HOST
  • PORT
  • LOG_LEVEL

Sie werden oft in .env-Dateien oder direkt in der Shell gesetzt.

Warum Umgebungsvariablen nutzen?

  • Trennung: Konfiguration ist nicht im Code.
  • Flexibilität: Gleiche Anwendung läuft mit verschiedenen Werten.
  • Sicherheit: Geheimnisse werden nicht im Repository gespeichert.
  • Einfachheit: Schnell zu setzen und zu ändern.

Grundsätzliche Sicherheitsregeln

  • .env-Dateien nicht in Git einchecken.
  • Berechtigungen einschränken: Dateien nur für den Besitzer lesbar machen.
  • Keine Secrets in Logs oder Fehlermeldungen ausgeben.
  • Umgebungsvariablen nicht in öffentlichen Bildern speichern.
  • Nur dem Prozess Zugriff geben, der sie braucht.
  • Regelmäßig Werte rotieren.

.env-Dateien

Eine .env-Datei enthält pro Zeile eine Variable:

OLLAMA_HOST=http://localhost:11434
OPEN_WEBUI_PORT=8080
DATABASE_URL=postgresql://user:pass@localhost/db

Viele Tools wie Python-dotenv, Docker Compose und Node.js laden diese Dateien automatisch.

Docker und Docker Compose

In Docker Compose können Umgebungsvariablen auf mehrere Arten gesetzt werden:

  • env_file: Verweis auf eine .env-Datei.
  • environment: Direkte Werte in der Compose-Datei.
  • Secrets: Docker Secrets in Swarm oder Kubernetes.

Beispiel:

services:
  webui:
    image: open-webui:latest
    env_file:
      - .env
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434

Typische Fehler

  • .env im Repository: Leaks durch versehentliches Pushen.
  • Schwache Dateirechte: Jeder Benutzer kann Secrets lesen.
  • Ausgabe in Logs: print(os.environ) aus Versehen.
  • Zu viele Variablen: Unübersichtlich und fehleranfällig.
  • Veraltete Werte: Laufen weiter, obwohl Passwörter geändert wurden.

Bessere Alternativen

Für mehr Sicherheit oder größere Teams bieten sich an:

  • verschlüsselte .env-Dateien mit dotenvx oder SOPS.
  • Docker Secrets in Swarm.
  • Kubernetes Secrets in K8s.
  • Secret-Manager wie Infisical oder HashiCorp Vault.

Wichtige Begriffe

  • Shell-Variable: Nur in der aktuellen Shell gültig.
  • Environment-Variable: An Kindprozesse vererbbar.
  • env_file: Datei, die Variablen lädt.
  • Secret: Sensible Information, die besonders geschützt werden muss.
  • Export: Variable in der Shell verfügbar machen.

Praxisbeispiel: Ollama und Open WebUI

# .env
OLLAMA_BASE_URL=http://ollama:11434
OPEN_WEBUI_PORT=8080
OPEN_WEBUI_ENABLE_SIGNUP=false

Diese Datei wird bei Docker Compose nicht mitgeliefert, sondern lokal angelegt.

FAQ: Umgebungsvariablen

Sind .env-Dateien sicher? Nur, wenn sie nicht ins Repository gelangen und richtige Berechtigungen haben. Für produktive Teams sind verschlüsselte Lösungen besser.

Wie schütze ich .env-Dateien? Mit chmod 600 .env nur für den Besitzer lesbar machen und in .gitignore eintragen.

Kann ich Umgebungsvariablen in Docker Compose verschlüsseln? Ja, über Docker Secrets, Bind Mounts mit verschlüsselten Dateien oder externe Tools.

Was passiert bei einem Commit ins Git? Werte rotieren, da sie als kompromittiert gelten.

Soll ich alle Konfigurationen in .env-Dateien ablegen? Nur sensible Werte und Umgebungs-spezifische Einstellungen. Allgemeine Konfiguration gehört in den Code oder Konfigurationsdateien.

Quellen und weiterführende Literatur

Zusammenfassung: Umgebungsvariablen sicher nutzen

Umgebungsvariablen und .env-Dateien sind ein einfacher Einstieg, um Konfiguration und Secrets von Code zu trennen. Für lokale KI-Projekte sind sie allgegenwärtig. Wichtig sind korrekte Dateiberechtigungen, Ausschluss aus Git, Vermeidung von Logs und regelmäßige Rotation. Für größere oder produktive Setups sollte man zu verschlüsselten .env-Dateien, Docker Secrets oder Secret-Managern wechseln.

Zurück zum KI Blog
Share:

Ähnliche Beiträge