From ff275f93c648612754c9deaa594f8b114606a48b Mon Sep 17 00:00:00 2001 From: boksbc Date: Fri, 17 Oct 2025 04:34:17 +0200 Subject: [PATCH] Laudende Default seite entfernen --- scripts/99-summary.sh | 74 ++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/scripts/99-summary.sh b/scripts/99-summary.sh index 28d9d29..adf5a04 100644 --- a/scripts/99-summary.sh +++ b/scripts/99-summary.sh @@ -3,21 +3,18 @@ set -euo pipefail source ./lib.sh # ───────────────────────────────────────────────────────────── -# Schöner Abschluss-Summary mit Farben, Diensten & Smoke-Test +# MailWolt – Abschluss / Summary (Dienste, Zertifikate, Smoke-Test) # ───────────────────────────────────────────────────────────── -# Farben & Symbole -BOLD="\033[1m"; DIM="\033[2m"; NC="\033[0m" +# Farben & Deko +NC="\033[0m"; BOLD="\033[1m"; DIM="\033[2m" GREEN="\033[1;32m"; RED="\033[1;31m"; YELLOW="\033[1;33m"; CYAN="\033[1;36m"; GREY="\033[0;90m" -OKS="${GREEN}OK${NC}"; FAILS="${RED}FAIL${NC}"; WARN="${YELLOW}!${NC}" -PLUS="${GREEN}[+]${NC}" - +OKS="${GREEN}OK${NC}"; FAILS="${RED}FAIL${NC}" bar(){ printf "${CYAN}%s${NC}\n" "──────────────────────────────────────────────────────────────────────────────"; } -log(){ printf "${GREEN}[+]${NC} %s\n" "$*"; } -ok() { printf " [${OKS}]\n"; } -fail(){ printf " [${FAILS}]\n"; } +ok(){ printf " [${OKS}]\n"; } +fail(){printf " [${FAILS}]\n"; } -# Evtl. persistente Variablen laden (falls vom Installer geschrieben) +# Installer-Variablen laden (falls vorhanden) set +u [ -r /etc/mailwolt/installer.env ] && . /etc/mailwolt/installer.env set -u @@ -33,44 +30,48 @@ WEBMAIL_HOST="${WEBMAIL_HOST:-}" MAIL_HOSTNAME="${MAIL_HOSTNAME:-}" APP_ENV="${APP_ENV:-production}" -PROXY_MODE="${PROXY_MODE:-0}" +PROXY_MODE="${PROXY_MODE:-}" # leer = nicht anzeigen; "1"=Proxy, "dev"=Dev, sonst "nein" NPM_IP="${NPM_IP:-}" LE_EMAIL="${LE_EMAIL:-admin@${BASE_DOMAIN}}" ACME_WEBROOT="/var/www/letsencrypt" -# Zert-Pfade (werden idR via Hook symlinked) +# Zert-Pfade (werden via Hook nach /etc/ssl/* verlinkt) UI_CERT="/etc/ssl/ui/fullchain.pem" UI_KEY="/etc/ssl/ui/privkey.pem" WEBMAIL_CERT="/etc/ssl/webmail/fullchain.pem" MAIL_CERT="/etc/ssl/mail/fullchain.pem" -# IPs +# IPs (aus lib.sh) SERVER_PUBLIC_IPV4="${SERVER_PUBLIC_IPV4:-$(detect_ip)}" SERVER_PUBLIC_IPV6="${SERVER_PUBLIC_IPV6:-$(detect_ipv6)}" -# Scheme/URLs ableiten +# URLs (https nur, wenn UI-Cert+Key vorhanden) SCHEME="http" [[ -s "$UI_CERT" && -s "$UI_KEY" ]] && SCHEME="https" - APP_URL="${SCHEME}://${UI_HOST:-$SERVER_PUBLIC_IPV4}" WEBMAIL_URL="${SCHEME}://${WEBMAIL_HOST:-$SERVER_PUBLIC_IPV4}" -# Erkennen, ob die Zert-Symlinks auf LE zeigen (nur kosmetisch) -real_target() { readlink -f -- "$1" 2>/dev/null || true; } +# Ziel eines Symlinks auflösen +real_target(){ readlink -f -- "$1" 2>/dev/null || true; } + +# "LE" werten, wenn live/* ODER archive/* (auch fullchainN.pem) getroffen wird +is_le_path(){ + local p="$1" + [[ "$p" == /etc/letsencrypt/live/*/fullchain.pem || "$p" == /etc/letsencrypt/archive/*/fullchain*.pem ]] +} + UI_CERT_TARGET="$(real_target "$UI_CERT")" WEBMAIL_CERT_TARGET="$(real_target "$WEBMAIL_CERT")" MAIL_CERT_TARGET="$(real_target "$MAIL_CERT")" -is_le(){ [[ "$1" == /etc/letsencrypt/live/*/fullchain.pem ]]; } -UI_LE=$([[ -n "$UI_CERT_TARGET" ]] && is_le "$UI_CERT_TARGET" && echo "LE" || echo "self-signed/none") -WEBMAIL_LE=$([[ -n "$WEBMAIL_CERT_TARGET" ]] && is_le "$WEBMAIL_CERT_TARGET" && echo "LE" || echo "self-signed/none") -MAIL_LE=$([[ -n "$MAIL_CERT_TARGET" ]] && is_le "$MAIL_CERT_TARGET" && echo "LE" || echo "self-signed/none") - +UI_LE=$([[ -s "$UI_CERT" && -n "$UI_CERT_TARGET" && is_le_path "$UI_CERT_TARGET" ]] && echo "LE" || echo "self-signed/none") +WEBMAIL_LE=$([[ -s "$WEBMAIL_CERT" && -n "$WEBMAIL_CERT_TARGET" && is_le_path "$WEBMAIL_CERT_TARGET" ]] && echo "LE" || echo "self-signed/none") +MAIL_LE=$([[ -s "$MAIL_CERT" && -n "$MAIL_CERT_TARGET" && is_le_path "$MAIL_CERT_TARGET" ]] && echo "LE" || echo "self-signed/none") echo bar -printf " %s %s\n" "✔ MailWolt Bootstrap fertig" "" +printf " %s\n" "✔ MailWolt Bootstrap fertig" bar # Kopf-Infos @@ -78,13 +79,14 @@ printf " %-14s %s\n" "Aufruf UI:" "${APP_URL}" printf " %-14s %s\n" "Webmail:" "${WEBMAIL_URL}" printf " %-14s %s\n" "App Root:" "${APP_DIR}" printf " %-14s %s\n" "Mail-FQDN:" "${MAIL_HOSTNAME:-$SERVER_PUBLIC_IPV4}" -printf " %-14s %s\n" "BASE_DOMAIN:" "${BASE_DOMAIN}" -printf " %-14s %s\n" "LE-Email:" "${LE_EMAIL}" -printf " %-14s %s\n" "APP_ENV:" "${APP_ENV}" -if [[ -n "${PROXY_MODE:-}" ]]; then - if [[ "$PROXY_MODE" = "1" ]]; then +printf " %-14s %s\n" "BASE_DOMAIN:" "${BASE_DOMAIN}" +printf " %-14s %s\n" "LE-Email:" "${LE_EMAIL}" +printf " %-14s %s\n" "APP_ENV:" "${APP_ENV}" +# Proxy-Block nur anzeigen, wenn Variable gesetzt ist +if [[ -n "$PROXY_MODE" ]]; then + if [[ "$PROXY_MODE" == "1" ]]; then printf " %-14s %s\n" "Proxy-Mode:" "ja (NPM: ${NPM_IP:-unbekannt})" - elif [[ "$PROXY_MODE" = "dev" ]]; then + elif [[ "$PROXY_MODE" == "dev" ]]; then printf " %-14s %s\n" "Proxy-Mode:" "Entwicklungsmodus" else printf " %-14s %s\n" "Proxy-Mode:" "nein" @@ -102,7 +104,7 @@ echo " Bitte zuerst registrieren (Erst-User wird Admin, danach" echo " wird die Registrierung automatisch gesperrt)." echo -# Dienste-Status +# ── Dienste ──────────────────────────────────────────────────────────────── bar echo " Services" bar @@ -133,7 +135,6 @@ svc "${APP_USER}-ws" "mailwolt-ws" || true svc "${APP_USER}-schedule" "mailwolt-schedule" || true svc "${APP_USER}-queue" "mailwolt-queue" || true -# Kurze Zusammenfassung echo if ((${#OK_LIST[@]})); then printf " ${GREEN}OK:${NC} %s\n" "$(IFS=', '; echo "${OK_LIST[*]}")" @@ -144,7 +145,7 @@ if ((${#FAIL_LIST[@]})); then fi echo -# Smoke-Test +# ── Smoke-Test ───────────────────────────────────────────────────────────── bar echo " Smoke-Test (SMTP/IMAP/POP3 mit/ohne TLS)" bar @@ -155,7 +156,7 @@ check_port(){ if timeout 8s bash -lc "$cmd" >/dev/null 2>&1; then ok; else fail; fi } -# ein kurzes Delay, damit frisch gestartete Dienste lauschen +# kleines Delay nach Erststart sleep 6 || true # SMTP @@ -178,14 +179,15 @@ check_port "993" 'printf ". CAPABILITY\r\n. LOGOUT\r\n" | openssl s_client -conn echo -# Nützliche Hinweise am Ende +# Hinweise nur ausgeben, wenn wirklich kein LE für UI/Webmail if [[ "$UI_LE" != "LE" || "$WEBMAIL_LE" != "LE" ]]; then echo -e " ${YELLOW}Hinweis:${NC} UI/Webmail verwenden noch kein Let's-Encrypt-Zertifikat." echo -e " Prüfe Symlinks unter /etc/ssl/{ui,webmail} und den LE-Hook (21/75-Skripte)." echo fi -if [[ "$PROXY_MODE" = "1" ]]; then - echo -e " ${GREY}Proxy-Hinweis:${NC} App erwartet TLS am Proxy (keine https-Redirects im Backend)." +# Proxy-Info (optional) +if [[ "$PROXY_MODE" == "1" ]]; then + echo -e " ${GREY}Proxy-Hinweis:${NC} App erwartet TLS am Proxy (Backend ohne https-Redirects)." echo fi \ No newline at end of file