Zum Hauptinhalt springen

Konfigurationsreferenz

Umgebungsvariablen

Verschlüsselung (Pflicht)

Genau eine der beiden folgenden Variablen muss gesetzt sein:

VariableEmpfohlen fürBeschreibung
IDIAL_MASTER_KEYProduktionMaster Key als base64-kodierter Wert, der zur Laufzeit in die Umgebungsvariable gesetzt wird. Ermöglicht die Integration mit HSM- oder KMS-Lösungen (z. B. PKCS#11, AWS KMS, HashiCorp Vault), sodass der Schlüssel niemals unverschlüsselt auf dem Dateisystem liegt.
IDIAL_MASTER_KEY_FILELab / TestPfad zu einer Datei, die den Master Key enthält. Einfacher einzurichten, erfordert jedoch strikte Zugriffskontrollen auf das Dateisystem: Nur die autorisierten Identitäten dürfen die Schlüsseldatei lesen. Für Umgebungen mit erhöhten Sicherheitsanforderungen nicht empfohlen.

Der Schlüssel muss base64-kodiert sein und dekodiert exakt 32 Bytes (256 Bit) ergeben.

Lab-Setup — Schlüssel erzeugen

Für Testumgebungen kann ein Schlüssel schnell per openssl rand -base64 32 generiert werden.

In Produktivumgebungen gelten strengere Anforderungen: Der Schlüssel muss mit ausreichend Entropie erzeugt, sicher gespeichert und separat gesichert werden. Ein verlorener Master Key bedeutet den dauerhaften Verlust des Zugriffs auf alle verschlüsselten Inhalte des Containers.

Anwendung (Optional)

VariableStandardwertBeschreibung
PORT5555Port, auf dem der Anwendungsserver lauscht
SERVER_HOST0.0.0.0Bind-Adresse des Servers

Logging (Optional)

VariableStandardwertMögliche Werte
LOG_LEVELINFODEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_FILE_ENABLEDtruetrue / false

Volume-Pfade

Pfad im ContainerZweckPersistent erforderlich
/app/runtime_dataAnwendungsdatenbank — alle Laufzeitdaten der AnwendungJa
/app/configKonfigurationsdateien und verschlüsselter SchlüsselspeicherJa
/app/logsAnwendungsprotokolleNein (empfohlen)
warnung

Werden die persistenten Volumes beim Neustart nicht gemountet, gehen alle Anwendungsdaten verloren. Volumes werden beim Start automatisch initialisiert, wenn sie leer oder neu sind.

Erststart-Initialisierung

Beim ersten Start mit leeren Volumes initialisiert der Container selbstständig:

  • Datenbank — Alle Anwendungsdaten werden in einem verschlüsselten Datenspeicher angelegt
  • Schlüsselspeicher — Ein verschlüsselter Keystore wird erzeugt, der bei jedem Folgestart zur Validierung des Master Keys verwendet wird
  • TLS-Zertifikat — Ein selbstsigniertes Zertifikat wird generiert, sodass der Container sofort über HTTPS erreichbar ist

Ein manuelles Anlegen von Dateien oder Strukturen ist nicht erforderlich.


Ports

PortProtokollKonfigurierbar via
5555 (Standard)HTTPSPORT-Umgebungsvariable

Beim Deployment mit Docker Compose wird Port 5555 typischerweise auf 443 des Hosts gemappt:

ports:
- "443:5555"

Exit-Codes

Der Container gibt bei einem Startfehler einen definierten Exit-Code zurück, der den Fehlerbereich angibt.

Crypto-Fehler (20–23)

CodeUrsacheBehebung
20Weder IDIAL_MASTER_KEY noch IDIAL_MASTER_KEY_FILE gesetztEine der beiden Variablen konfigurieren
21Master Key hat falsches Format oder falsche Länge (dekodiert nicht zu 32 Bytes)Schlüssel prüfen — er muss base64-kodiert sein und dekodiert genau 32 Bytes ergeben
22Datei unter IDIAL_MASTER_KEY_FILE nicht lesbar oder nicht vorhandenPfad und Dateiberechtigungen prüfen
23Crypto-Health-Check fehlgeschlagen — bestehender Schlüsselspeicher kann nicht entschlüsselt werdenPrüfen, ob derselbe Master Key wie beim Erststart übergeben wird

Port-Fehler (30)

CodeUrsacheBehebung
30Konfigurierter Port bereits belegtAnderen Port via PORT-Variable wählen oder belegenden Prozess beenden

Konfigurationsfehler (40–42)

CodeUrsacheBehebung
40Daten-Volume nicht beschreibbarVolume-Mount und Dateiberechtigungen prüfen
41Konfigurations-Volume nicht beschreibbarVolume-Mount und Dateiberechtigungen prüfen
42Anwendungs-Build im Container-Image nicht gefundenContainer-Image prüfen

Konfigurationsdatei-Fehler (10–11)

CodeUrsacheBehebung
10Konfigurationsdatei vorhanden, aber ungültigKonfigurationsdatei auf gültiges JSON prüfen oder entfernen (wird neu erstellt)
11Ungültige Umgebungsvariable (z. B. PORT außerhalb 1–65535)Wert der betreffenden Variable prüfen

Health-Check-Endpunkte

EndpunktAuthBeschreibung
GET /api/healthKeineGibt {"status": "healthy"} zurück, wenn die Anwendung läuft
GET /api/health/cryptoAdminDetaillierter Status des Verschlüsselungssystems