Konfigurationsreferenz
Umgebungsvariablen
Verschlüsselung (Pflicht)
Genau eine der beiden folgenden Variablen muss gesetzt sein:
| Variable | Empfohlen für | Beschreibung |
|---|---|---|
IDIAL_MASTER_KEY | Produktion | Master 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_FILE | Lab / Test | Pfad 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.
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)
| Variable | Standardwert | Beschreibung |
|---|---|---|
PORT | 5555 | Port, auf dem der Anwendungsserver lauscht |
SERVER_HOST | 0.0.0.0 | Bind-Adresse des Servers |
Logging (Optional)
| Variable | Standardwert | Mögliche Werte |
|---|---|---|
LOG_LEVEL | INFO | DEBUG, INFO, WARNING, ERROR, CRITICAL |
LOG_FILE_ENABLED | true | true / false |
Volume-Pfade
| Pfad im Container | Zweck | Persistent erforderlich |
|---|---|---|
/app/runtime_data | Anwendungsdatenbank — alle Laufzeitdaten der Anwendung | Ja |
/app/config | Konfigurationsdateien und verschlüsselter Schlüsselspeicher | Ja |
/app/logs | Anwendungsprotokolle | Nein (empfohlen) |
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
| Port | Protokoll | Konfigurierbar via |
|---|---|---|
5555 (Standard) | HTTPS | PORT-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)
| Code | Ursache | Behebung |
|---|---|---|
20 | Weder IDIAL_MASTER_KEY noch IDIAL_MASTER_KEY_FILE gesetzt | Eine der beiden Variablen konfigurieren |
21 | Master 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 |
22 | Datei unter IDIAL_MASTER_KEY_FILE nicht lesbar oder nicht vorhanden | Pfad und Dateiberechtigungen prüfen |
23 | Crypto-Health-Check fehlgeschlagen — bestehender Schlüsselspeicher kann nicht entschlüsselt werden | Prüfen, ob derselbe Master Key wie beim Erststart übergeben wird |
Port-Fehler (30)
| Code | Ursache | Behebung |
|---|---|---|
30 | Konfigurierter Port bereits belegt | Anderen Port via PORT-Variable wählen oder belegenden Prozess beenden |
Konfigurationsfehler (40–42)
| Code | Ursache | Behebung |
|---|---|---|
40 | Daten-Volume nicht beschreibbar | Volume-Mount und Dateiberechtigungen prüfen |
41 | Konfigurations-Volume nicht beschreibbar | Volume-Mount und Dateiberechtigungen prüfen |
42 | Anwendungs-Build im Container-Image nicht gefunden | Container-Image prüfen |
Konfigurationsdatei-Fehler (10–11)
| Code | Ursache | Behebung |
|---|---|---|
10 | Konfigurationsdatei vorhanden, aber ungültig | Konfigurationsdatei auf gültiges JSON prüfen oder entfernen (wird neu erstellt) |
11 | Ung ültige Umgebungsvariable (z. B. PORT außerhalb 1–65535) | Wert der betreffenden Variable prüfen |
Health-Check-Endpunkte
| Endpunkt | Auth | Beschreibung |
|---|---|---|
GET /api/health | Keine | Gibt {"status": "healthy"} zurück, wenn die Anwendung läuft |
GET /api/health/crypto | Admin | Detaillierter Status des Verschlüsselungssystems |