diff --git a/Website/launch.sh b/Website/launch.sh index d8f363d..2d909d1 100755 --- a/Website/launch.sh +++ b/Website/launch.sh @@ -239,10 +239,19 @@ watcher_loop() { ACTUAL_PORT=$(get_free_port "$PORT") echo "[INFO] Verwende Port $ACTUAL_PORT für Tenant $SLUG" - # 2. Tenant anlegen (mit Passwort strikt als 3. Argument in Quotes) - if (cd "$TARGET_SYSTEM_DIR" && "$TARGET_SCRIPT" add "$SLUG" "$ACTUAL_PORT" "$PASS"); then + # WICHTIG: Passwort in literale doppelte Anführungszeichen setzen ("Passwort"), + # damit manage-tenant.sh das Argument korrekt verarbeiten kann. + QUOTED_PASS="\"$PASS\"" + + # 2. Tenant anlegen + if (cd "$TARGET_SYSTEM_DIR" && "$TARGET_SCRIPT" add "$SLUG" "$ACTUAL_PORT" "$QUOTED_PASS"); then echo "[SUCCESS] Tenant bereitgestellt: $SLUG (Port: $ACTUAL_PORT)" + # WORKAROUND für Docker: Warte kurz, damit der Docker Daemon den Container-Namen + # vom Neustart freigibt und wir nicht in einen Konflikt laufen. + echo "[INFO] Warte 8 Sekunden auf Docker-Cleanup (Vermeidung von Namenskonflikten)..." + sleep 8 + # 3. Module konfigurieren if [ -n "$MODULES" ]; then echo "[INFO] Konfiguriere Module für $SLUG: $MODULES" @@ -252,8 +261,15 @@ watcher_loop() { else echo "[ERROR] Fehler beim Konfigurieren der Module für $SLUG." >&2 fi + + echo "[INFO] Warte weitere 8 Sekunden auf Docker..." + sleep 8 fi + # Um sicherzugehen, löschen wir verwaiste Container, bevor das Skript greift + echo "[INFO] Bereinige verwaiste App-Container..." + sudo docker rm -f inventarsystem-app-1 2>/dev/null || true + # 4. System neustarten echo "[INFO] Führe sudo ./restart.sh nach Tenant-Generierung aus..." if (cd "$TARGET_SYSTEM_DIR" && sudo ./restart.sh); then diff --git a/Website/modules/emailservice/email.py b/Website/modules/emailservice/email.py index 45312a3..3d972a5 100644 --- a/Website/modules/emailservice/email.py +++ b/Website/modules/emailservice/email.py @@ -178,7 +178,7 @@ def send_accreditation_email(recipient: str, domain: str, username: str, passwor "Vielen Dank für Ihre Akkreditierung bei Invario. " "Im Anhang finden Sie Ihre Rechnung und den Vertrag.\n\n" f"Ihre Zugangsdaten:\n" - f"Domain: {domain}\n" + f"Domain: https://{domain}\n" f"Benutzername: {username}\n" f"Passwort: {password}\n\n" "Bitte bewahren Sie diese Informationen sicher auf." @@ -193,7 +193,7 @@ def send_accreditation_email(recipient: str, domain: str, username: str, passwor

Ihre Zugangsdaten: