Zum Inhalt

Konfigurationssystem

Das System verwaltet eine zentrale Konfigurationsdatei:

/app/config/config.json

Die Konfiguration wird auf zwei Arten gesteuert:

  1. Initialisierung über Umgebungsvariablen (ENV)
  2. Verwaltung über die Einstellungsseite oder direktes Bearbeiten der config.json

Initialisierung beim ersten Start

Wenn beim Start keine config.json vorhanden ist, wird sie aus den folgenden Umgebungsvariablen erstellt:

ENV Variable Feld in config.json Beispielwert
APP_INSTANCE_NAME general.instanceName Feuerwehrkarte Berlin
APP_ADMIN_NAME general.adminName Max Mustermann
APP_ADMIN_CONTACT general.adminContact admin@example.com
APP_SMTP_HOST mail.smtpHost smtp.example.com
APP_SMTP_PORT mail.smtpPort 587
APP_SMTP_USERNAME mail.smtpUsername user@example.com
APP_SMTP_PASSWORD mail.smtpPassword geheim123

Verhalten bei Docker Deployments

Mit gemounteter Konfigurationsdatei (Volume)

volumes:
  - ./config:/app/config
  • Beim ersten Start wird config.json erstellt (wenn sie noch nicht vorhanden ist)
  • Danach wird die Konfiguration immer aus der Datei gelesen
  • Änderungen über die Einstellungsseite oder direktes Bearbeiten der Datei sind permanent
  • ENV Variablen haben danach keinen Einfluss (nur beim Erzeugen der Datei)

Ohne gemountete config.json (kein Volume)

# kein Volume für ./config
  • Bei jedem Container-Start wird die config.json im Container-Verzeichnis neu erzeugt
  • Dabei werden die aktuellen ENV-Variablen verwendet
  • Änderungen über die Einstellungsseite gehen verloren beim Neustart
  • Dieses Verhalten eignet sich für stateless Deployments mit ENV-only Steuerung

Zusammenfassung

Deployment Verhalten
Mit Volume Konfigurationsdatei bleibt bestehen, UI-Änderungen werden gespeichert
Ohne Volume Bei jedem Start neue Konfig basierend auf ENV, UI-Änderungen gehen verloren

Empfehlung

  • Für produktive Systeme: Mounten Sie das config-Verzeichnis als Volume
  • Für temporäre oder Test-Deployments: ENV-only möglich (ohne Volume)