#!/bin/bash set -euo pipefail NOTIF_CFG="/etc/pve/notifications.cfg" PRIV_NOTIF_CFG="/etc/pve/priv/notifications.cfg" # ----------------------------- # Backup-Funktion # ----------------------------- backup_file() { local file=$1 if [ -f "$file" ]; then local bak="${file}.bak.$(date +%Y%m%d%H%M%S)" cp "$file" "$bak" echo "Backup erstellt: $bak" fi } # ----------------------------- # Pflichtfeld-Reader # $1 = Prompt # $2 = Variablenname # $3 = Optionaler Default # ----------------------------- read_required() { local prompt="$1" local varname="$2" local default="${3:-}" local input while true; do if [[ -n "$default" ]]; then read -rp "$prompt [$default]: " input input=${input:-$default} else read -rp "$prompt: " input fi if [[ -n "$input" ]]; then printf -v "$varname" '%s' "$input" break fi echo "❌ Eingabe darf nicht leer sein!" done } # ----------------------------- # Backups # ----------------------------- backup_file "$NOTIF_CFG" backup_file "$PRIV_NOTIF_CFG" echo echo "Bitte die SMTP Notification Konfiguration eingeben:" echo "(Alle Felder sind Pflicht – Enter übernimmt ggf. den Default)" echo # ----------------------------- # Eingaben # ----------------------------- read_required "Author" AUTHOR read_required "From-Address" FROMADDR read_required "Empfänger-Mailadresse (mailto)" MAILTO "admin@vmd55888.de" read_required "SMTP Server" SERVER "mail.vmd55888.de" read_required "SMTP Port" PORT "587" read_required "Modus (starttls/ssl/none)" MODE "starttls" read_required "SMTP Benutzername" USERNAME "MH-PVE02@vmd55888.de" # Passwort (Pflichtfeld, versteckt) while true; do read -rsp "SMTP Passwort: " SMTP_PASS echo [[ -n "$SMTP_PASS" ]] && break echo "❌ Passwort darf nicht leer sein!" done # ----------------------------- # notifications.cfg schreiben # ----------------------------- cat > "$NOTIF_CFG" << EOF sendmail: mail-to-root comment Send mails to root@pam's email address disable true mailto-user root@pam matcher: default-matcher comment Route all notifications to mail-to-root mode all target mailout smtp: mailout author $AUTHOR from-address $FROMADDR mailto $MAILTO mailto-user root@pam mode $MODE port $PORT server $SERVER username $USERNAME EOF # ----------------------------- # priv/notifications.cfg schreiben # ----------------------------- cat > "$PRIV_NOTIF_CFG" << EOF smtp: mailout password $SMTP_PASS EOF echo echo "✅ Konfiguration neu geschrieben. Bitte WebUI prüfen."