diff --git a/packaging/DEBIAN/postinst b/packaging/DEBIAN/postinst index 1499ada..268caed 100755 --- a/packaging/DEBIAN/postinst +++ b/packaging/DEBIAN/postinst @@ -42,6 +42,20 @@ case "$1" in chown "root:$SERVICE_USER" "$CONFIG_DIR/deklarix.env" fi + # ─── Healing: fehlende Variablen aus älteren Installationen ─── + # deklarix.env wird bei Upgrades nie überschrieben (Secrets/ + # Anpassungen bleiben erhalten) — Variablen, die erst nach einer + # Erstinstallation dazugekommen sind, fehlen dort sonst schlicht + # und lassen den Dienst mit einem für den Admin überraschenden + # Fehler abbrechen (z. B. RULES_DIR fehlt -> main.go sucht Regeln + # im falschen Verzeichnis, obwohl DATABASE_URL längst gesetzt + # war). Bekannte Variablen mit unkritischem Default werden hier + # ergänzt, falls sie fehlen — nie überschrieben, nur angehängt. + if [ -f "$CONFIG_DIR/deklarix.env" ]; then + grep -q '^RULES_DIR=' "$CONFIG_DIR/deklarix.env" || \ + echo "RULES_DIR=/usr/share/deklarix/rules" >> "$CONFIG_DIR/deklarix.env" + fi + systemctl daemon-reload 2>/dev/null || true systemctl enable deklarix.service >/dev/null 2>&1 || true