Fix: apply-domains mit Backup/Restore + robuster Cert-Erkennung

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main v1.1.300
boban 2026-04-26 18:27:36 +02:00
parent 1e053c2bb6
commit 81f1c9512a
1 changed files with 28 additions and 9 deletions

View File

@ -96,13 +96,24 @@ if [ "${SSL_AUTO}" = "1" ]; then
fi
# --- Phase 3: Finale Vhosts ---
# Nur HTTPS wenn LE-Cert tatsächlich vorhanden, sonst HTTP-only (kein self-signed Fallback)
UI_HAS_CERT=0
WM_HAS_CERT=0
MAIL_HAS_CERT=0
[ -f "/etc/letsencrypt/live/${UI_HOST}/fullchain.pem" ] && UI_HAS_CERT=1
[ -f "/etc/letsencrypt/live/${WEBMAIL_HOST}/fullchain.pem" ] && WM_HAS_CERT=1
[ -f "/etc/letsencrypt/live/${MAIL_HOST}/fullchain.pem" ] && MAIL_HAS_CERT=1
# Backup der aktuellen nginx-Config (Wiederherstellung bei Fehler)
NGINX_BACKUP="${NGINX_SITE}.bak"
[ -f "${NGINX_SITE}" ] && cp "${NGINX_SITE}" "${NGINX_BACKUP}"
# Cert-Erkennung: fullchain.pem direkt, Renewal-Datei, oder umbenannter Cert-Ordner
cert_exists() {
local d="$1"
[ -z "$d" ] && return 1
[ -f "/etc/letsencrypt/live/${d}/fullchain.pem" ] && return 0
[ -f "/etc/letsencrypt/renewal/${d}.conf" ] && return 0
ls "/etc/letsencrypt/live/${d}"-*/fullchain.pem 2>/dev/null | grep -q . && return 0
return 1
}
UI_HAS_CERT=0; WM_HAS_CERT=0; MAIL_HAS_CERT=0
cert_exists "${UI_HOST}" && UI_HAS_CERT=1
cert_exists "${WEBMAIL_HOST}" && WM_HAS_CERT=1
cert_exists "${MAIL_HOST}" && MAIL_HAS_CERT=1
(
if [ "${UI_HAS_CERT}" = "1" ] || [ "${WM_HAS_CERT}" = "1" ]; then
@ -331,5 +342,13 @@ if [ -n "${UI_HOST}" ] && [ -f "${ENV_FILE}" ]; then
php "${APP_DIR}/artisan" optimize:clear --quiet 2>/dev/null || true
fi
nginx -t && systemctl reload nginx
echo "mailwolt-apply-domains fertig"
if nginx -t 2>/dev/null; then
systemctl reload nginx
echo "mailwolt-apply-domains fertig"
else
echo "[!] nginx -t fehlgeschlagen — alte Konfiguration wird wiederhergestellt"
[ -f "${NGINX_BACKUP}" ] && cp "${NGINX_BACKUP}" "${NGINX_SITE}"
nginx -t && systemctl reload nginx
echo "[!] mailwolt-apply-domains mit Fehler beendet"
exit 1
fi