Laudende Default seite entfernen
parent
90a80e6843
commit
ff275f93c6
|
|
@ -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
|
||||
Loading…
Reference in New Issue