diff --git a/scripts/70-nginx.sh b/scripts/70-nginx.sh index b52f8f5..5805522 100644 --- a/scripts/70-nginx.sh +++ b/scripts/70-nginx.sh @@ -47,6 +47,10 @@ fi build_site_http_only(){ local host="$1" outfile="$2" + local def="" + [[ "${DEV_MODE}" = "1" ]] && def=" default_server" + [[ -z "${host}" || "${host}" = "_" ]] && host="_" + cat > "$outfile" < "${UNIT_DIR}/mailwolt-backup.timer" </dev/null 2>&1 || true fi log "[✓] Backup-Setup abgeschlossen." \ No newline at end of file diff --git a/scripts/95-woltguard.sh b/scripts/95-woltguard.sh index a0f547e..dc7cacb 100644 --- a/scripts/95-woltguard.sh +++ b/scripts/95-woltguard.sh @@ -173,5 +173,5 @@ fi monit -t systemctl reload monit || systemctl restart monit -woltguard status || true +systemctl status monit --no-pager || true log "[✓] WoltGuard aktiv." \ No newline at end of file diff --git a/scripts/98-motd.sh b/scripts/98-motd.sh index 40753d8..f5a7736 100644 --- a/scripts/98-motd.sh +++ b/scripts/98-motd.sh @@ -147,313 +147,4 @@ SH fi : > /etc/motd 2>/dev/null || true -log "[✓] MOTD installiert." - -##!/usr/bin/env bash -#set -euo pipefail -#source ./lib.sh -# -#log "MOTD installieren …" -#install -d /usr/local/bin -#cat >/usr/local/bin/mw-motd <<'SH' -##!/usr/bin/env bash -## bewusst KEIN "set -e"; MOTD soll nie hart abbrechen -#set -u -# -## Farben -#NC="\033[0m"; CY="\033[1;36m"; GR="\033[1;32m"; YE="\033[1;33m"; RD="\033[1;31m"; GY="\033[0;90m"; WH="\033[1;37m" -# -## Installer-Variablen (optional) -#UI_HOST=""; WEBMAIL_HOST=""; MAIL_HOSTNAME=""; LE_EMAIL=""; PROXY_MODE=""; NPM_IP="" -#[ -r /etc/mailwolt/installer.env ] && . /etc/mailwolt/installer.env || true -## Aus .env (falls vorhanden) -#if [ -r /var/www/mailwolt/.env ]; then -# LE_EMAIL="${LE_EMAIL:-$(grep -E '^LE_EMAIL=' /var/www/mailwolt/.env 2>/dev/null | sed 's/^LE_EMAIL=//')}" -# PROXY_MODE="${PROXY_MODE:-$(grep -E '^PROXY_MODE=' /var/www/mailwolt/.env 2>/dev/null | sed 's/^PROXY_MODE=//')}" -# NPM_IP="${NPM_IP:-$(grep -E '^NPM_IP=' /var/www/mailwolt/.env 2>/dev/null | sed 's/^NPM_IP=//')}" -#fi -# -## Header -#printf "${CY}" -#cat <<'ASCII' -# -#========================================================================================== -# -#:::: :::: ::: ::::::::::: ::: ::: ::: :::::::: ::: ::::::::::: -#+:+:+: :+:+:+ :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: -#+:+ +:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ -#+#+ +:+ +#+ +#++:++#++: +#+ +#+ +#+ +:+ +#+ +#+ +:+ +#+ +#+ -#+#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+#+ +#+ +#+ +#+ +#+ +#+ -##+# #+# #+# #+# #+# #+# #+#+# #+#+# #+# #+# #+# #+# -#### ### ### ### ########### ########## ### ### ######## ########## ### -# -#========================================================================================== -# -#ASCII -#printf "${NC}\n" -# -## Safe-Helfer (niemals Script killen) -#grab() { eval "$1" 2>/dev/null || true; } -#line() { printf "${GY}%-7s:${NC} %s\n" "$1" "$2"; } -# -## Systemdaten -#now="$(date '+%Y-%m-%d %H:%M:%S %Z' 2>/dev/null || echo -n '-')" -#fqdn="$(hostname -f 2>/dev/null || hostname 2>/dev/null || echo -n '-')" -#ip_int="$(hostname -I 2>/dev/null | awk '{print $1}' 2>/dev/null || true)" -#ip_ext="$(curl -fsS --max-time 1 https://ifconfig.me 2>/dev/null || true)" -#upt="$(uptime -p 2>/dev/null || echo -n '-')" -#cores="$(nproc 2>/dev/null || echo -n '-')" -#load="$(awk '{print $1" / "$2" / "$3}' /proc/loadavg 2>/dev/null || echo -n '-')" -# -## RAM/SWAP (MiB) -#mem_total="$(awk '/MemTotal/ {print int($2/1024)}' /proc/meminfo 2>/dev/null || echo -n '-')" -#mem_avail="$(awk '/MemAvailable/ {print int($2/1024)}' /proc/meminfo 2>/dev/null || echo -n '0')" -#mem_used=$(( ${mem_total:-0}-${mem_avail:-0} )) -#swap_total="$(awk '/SwapTotal/ {print int($2/1024)}' /proc/meminfo 2>/dev/null || echo -n '-')" -#swap_free="$(awk '/SwapFree/ {print int($2/1024)}' /proc/meminfo 2>/dev/null || echo -n '0')" -#swap_used=$(( ${swap_total:-0}-${swap_free:-0} )) -# -## Disks -#disk_line(){ df -hP "$1" 2>/dev/null | awk 'NR==2{printf "%s/%s (%s used)", $3,$2,$5}'; } -#disk_root="$(disk_line /)" -#disk_var="$(disk_line /var)" -# -#svc_state(){ -# local unit="$1" -# if systemctl is-active --quiet "$unit"; then -# printf "${GR}OK${NC}" -# else -# printf "${RD}FAIL${NC}" -# fi -#} -# -## Ausgabe -#printf "${CY}Information as of:${NC} ${YE}%s${NC}\n" "$now" -#line "FQDN" "$fqdn" -#if [ -n "$ip_ext" ]; then -# printf "${GY}%-7s:${NC} %s ${GY}(ext:${NC} %s${GY})${NC}\n" "IP" "${ip_int:--}" "$ip_ext" -#else -# line "IP" "${ip_int:--}" -#fi -#line "Uptime" "$upt" -#printf "${GY}%-7s:${NC} %s cores, load %s (1/5/15)\n" "CPU" "$cores" "$load" -#printf "${GY}%-7s:${NC} %s MiB used / %s MiB total\n" "RAM" "$mem_used" "$mem_total" -#printf "${GY}%-7s:${NC} %s MiB used / %s MiB total\n" "SWAP" "$swap_used" "$swap_total" -#line "Disk /" "${disk_root:-'-'}" -#line "Disk/var" "${disk_var:-'-'}" -# -## App/Installer Infos -#[ -n "${LE_EMAIL:-}" ] && line "LE Mail" "$LE_EMAIL" -#[ -n "${UI_HOST:-}" ] && line "UI" "$UI_HOST" -#[ -n "${WEBMAIL_HOST:-}" ] && line "Webmail" "$WEBMAIL_HOST" -#[ -n "${MAIL_HOSTNAME:-}" ]&& line "MX" "$MAIL_HOSTNAME" -#if [ -n "${PROXY_MODE:-}" ]; then -# if [ "$PROXY_MODE" = "1" ]; then -# line "Proxy" "ja (NPM: ${NPM_IP:-unbekannt})" -# elif [ "$PROXY_MODE" = "dev" ]; then -# line "Proxy" "Entwicklungsmodus" -# else -# line "Proxy" "nein" -# fi -#fi -# -## Services -#printf "${WH}\nServices:${NC}\n" -#printf " nginx … %b\n" "$(svc_state nginx)" -#printf " mariadb … %b\n" "$(svc_state mariadb)" -#printf " redis-server … %b\n" "$(svc_state redis-server)" -#printf " postfix … %b\n" "$(svc_state postfix)" -#printf " dovecot … %b\n" "$(svc_state dovecot)" -#printf " mailwolt-ws … %b\n" "$(svc_state mailwolt-ws)" -#printf " mailwolt-queue … %b\n" "$(svc_state mailwolt-queue)" -#printf " mailwolt-schedule … %b\n" "$(svc_state mailwolt-schedule)" -# -## Zertifikatskurzinfo (nur wenn vorhanden) -#show_cert_exp(){ -# local name="$1" path="$2" -# if [ -r "$path" ]; then -# local exp -# exp="$(openssl x509 -in "$path" -noout -enddate 2>/dev/null | sed 's/notAfter=//')" -# [ -n "$exp" ] && printf "${GY}%s cert:${NC} expires %s\n" "$name" "$exp" -# fi -#} -#show_cert_exp "UI" "/etc/ssl/ui/fullchain.pem" -#show_cert_exp "Webmail" "/etc/ssl/webmail/fullchain.pem" -#show_cert_exp "MX" "/etc/ssl/mail/fullchain.pem" -# -#exit 0 -#SH -#chmod 755 /usr/local/bin/mw-motd -# -#if [[ -d /etc/update-motd.d ]]; then -# cat >/etc/update-motd.d/10-mailwolt <<'SH' -##!/usr/bin/env bash -#/usr/local/bin/mw-motd -#SH -# chmod +x /etc/update-motd.d/10-mailwolt -# [[ -f /etc/update-motd.d/50-motd-news ]] && chmod -x /etc/update-motd.d/50-motd-news || true -#else -# cat >/etc/profile.d/10-mailwolt-motd.sh <<'SH' -#case "$-" in *i*) /usr/local/bin/mw-motd ;; esac -#SH -#fi -#: > /etc/motd 2>/dev/null || true -# -# -# -##cat >/usr/local/bin/mw-motd <<'SH' -###!/usr/bin/env bash -##set -euo pipefail -##NC="\033[0m"; CY="\033[1;36m"; GR="\033[1;32m"; YE="\033[1;33m"; RD="\033[1;31m"; GY="\033[0;90m" -##printf "\033[1;36m" -##cat <<'ASCII' -##:::: :::: ::: ::::::::::: ::: ::: ::: :::::::: ::: ::::::::::: -##+:+:+: :+:+:+ :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: -##+:+ +:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ -##+#+ +:+ +#+ +#++:++#++: +#+ +#+ +#+ +:+ +#+ +#+ +:+ +#+ +#+ -##+#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+#+ +#+ +#+ +#+ +#+ +#+ -###+# #+# #+# #+# #+# #+# #+#+# #+#+# #+# #+# #+# #+# -##### ### ### ### ########### ########## ### ### ######## ########## ### -##ASCII -##printf "\033[0m\n" -##now="$(date '+%Y-%m-%d %H:%M:%S %Z')" -##fqdn="$(hostname -f 2>/dev/null || hostname)" -##ip_int="$(hostname -I 2>/dev/null | awk '{print $1}')" -##ip_ext=""; command -v curl >/dev/null 2>&1 && ip_ext="$(curl -s --max-time 1 https://ifconfig.me || true)" -##upt="$(uptime -p 2>/dev/null || true)" -##cores="$(nproc 2>/dev/null || echo -n '?')" -##load="$(awk '{print $1" / "$2" / "$3}' /proc/loadavg 2>/dev/null)" -##svc(){ systemctl is-active --quiet "$1" && echo -e "${GR}OK${NC}" || echo -e "${RD}FAIL${NC}"; } -##printf "${CY}Information as of:${NC} ${YE}%s${NC}\n" "$now" -##printf "${GY}FQDN :${NC} %s\n" "$fqdn" -##if [ -n "$ip_ext" ]; then printf "${GY}IP :${NC} %s ${GY}(ext:${NC} %s${GY})${NC}\n" "${ip_int:-?}" "$ip_ext"; else printf "${GY}IP :${NC} %s\n" "${ip_int:-?}"; fi -##printf "${GY}Uptime :${NC} %s\n" "${upt:-?}" -##printf "${GY}Cores :${NC} %s\n" "$cores" -##printf "${GY}Load :${NC} %s (1/5/15)\n" "${load:-?}" -##printf "${GY}Svc :${NC} postfix: $(svc postfix) dovecot: $(svc dovecot) nginx: $(svc nginx) mariadb: $(svc mariadb) redis: $(svc redis)\n" -##SH -##chmod +x /usr/local/bin/mw-motd -# -##cat >/usr/local/bin/mw-motd <<'SH' -###!/usr/bin/env bash -### bewusst KEIN "set -e"; MOTD soll nie hart abbrechen -##set -u -## -### Farben -##NC="\033[0m"; CY="\033[1;36m"; GR="\033[1;32m"; YE="\033[1;33m"; RD="\033[1;31m"; GY="\033[0;90m"; WH="\033[1;37m" -## -### Installer-Variablen (optional) -##UI_HOST=""; WEBMAIL_HOST=""; MAIL_HOSTNAME=""; LE_EMAIL=""; PROXY_MODE=""; NPM_IP="" -##[ -r /etc/mailwolt/installer.env ] && . /etc/mailwolt/installer.env || true -### Aus .env (falls vorhanden) -##if [ -r /var/www/mailwolt/.env ]; then -## LE_EMAIL="${LE_EMAIL:-$(grep -E '^LE_EMAIL=' /var/www/mailwolt/.env 2>/dev/null | sed 's/^LE_EMAIL=//')}" -## PROXY_MODE="${PROXY_MODE:-$(grep -E '^PROXY_MODE=' /var/www/mailwolt/.env 2>/dev/null | sed 's/^PROXY_MODE=//')}" -## NPM_IP="${NPM_IP:-$(grep -E '^NPM_IP=' /var/www/mailwolt/.env 2>/dev/null | sed 's/^NPM_IP=//')}" -##fi -## -### Header -##printf "${CY}" -##cat <<'ASCII' -##:::: :::: ::: ::::::::::: ::: ::: ::: :::::::: ::: ::::::::::: -##+:+:+: :+:+:+ :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: -##+:+ +:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ -##+#+ +:+ +#+ +#++:++#++: +#+ +#+ +#+ +:+ +#+ +#+ +:+ +#+ +#+ -##+#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+#+ +#+ +#+ +#+ +#+ +#+ -###+# #+# #+# #+# #+# #+# #+#+# #+#+# #+# #+# #+# #+# -##### ### ### ### ########### ########## ### ### ######## ########## ### -##ASCII -##printf "${NC}\n" -## -### Safe-Helfer (niemals Script killen) -##grab() { eval "$1" 2>/dev/null || true; } -##line() { printf "${GY}%-7s:${NC} %s\n" "$1" "$2"; } -## -### Systemdaten -##now="$(date '+%Y-%m-%d %H:%M:%S %Z' 2>/dev/null || echo -n '-')" -##fqdn="$(hostname -f 2>/dev/null || hostname 2>/dev/null || echo -n '-')" -##ip_int="$(hostname -I 2>/dev/null | awk '{print $1}' 2>/dev/null || true)" -##ip_ext="$(curl -fsS --max-time 1 https://ifconfig.me 2>/dev/null || true)" -##upt="$(uptime -p 2>/dev/null || echo -n '-')" -##cores="$(nproc 2>/dev/null || echo -n '-')" -##load="$(awk '{print $1" / "$2" / "$3}' /proc/loadavg 2>/dev/null || echo -n '-')" -## -### RAM/SWAP (MiB) -##mem_total="$(awk '/MemTotal/ {print int($2/1024)}' /proc/meminfo 2>/dev/null || echo -n '-')" -##mem_avail="$(awk '/MemAvailable/ {print int($2/1024)}' /proc/meminfo 2>/dev/null || echo -n '0')" -##mem_used=$(( ${mem_total:-0}-${mem_avail:-0} )) -##swap_total="$(awk '/SwapTotal/ {print int($2/1024)}' /proc/meminfo 2>/dev/null || echo -n '-')" -##swap_free="$(awk '/SwapFree/ {print int($2/1024)}' /proc/meminfo 2>/dev/null || echo -n '0')" -##swap_used=$(( ${swap_total:-0}-${swap_free:-0} )) -## -### Disks -##disk_line(){ df -hP "$1" 2>/dev/null | awk 'NR==2{printf "%s/%s (%s used)", $3,$2,$5}'; } -##disk_root="$(disk_line /)" -##disk_var="$(disk_line /var)" -## -##svc_state(){ -## local unit="$1" -## if systemctl is-active --quiet "$unit"; then -## printf "${GR}OK${NC}" -## else -## printf "${RD}FAIL${NC}" -## fi -##} -## -### Ausgabe -##printf "${CY}Information as of:${NC} ${YE}%s${NC}\n" "$now" -##line "FQDN" "$fqdn" -##if [ -n "$ip_ext" ]; then -## printf "${GY}%-7s:${NC} %s ${GY}(ext:${NC} %s${GY})${NC}\n" "IP" "${ip_int:--}" "$ip_ext" -##else -## line "IP" "${ip_int:--}" -##fi -##line "Uptime" "$upt" -##printf "${GY}%-7s:${NC} %s cores, load %s (1/5/15)\n" "CPU" "$cores" "$load" -##printf "${GY}%-7s:${NC} %s MiB used / %s MiB total\n" "RAM" "$mem_used" "$mem_total" -##printf "${GY}%-7s:${NC} %s MiB used / %s MiB total\n" "SWAP" "$swap_used" "$swap_total" -##line "Disk /" "${disk_root:-'-'}" -##line "Disk/var" "${disk_var:-'-'}" -## -### App/Installer Infos -##[ -n "${LE_EMAIL:-}" ] && line "LE Mail" "$LE_EMAIL" -##[ -n "${UI_HOST:-}" ] && line "UI" "$UI_HOST" -##[ -n "${WEBMAIL_HOST:-}" ] && line "Webmail" "$WEBMAIL_HOST" -##[ -n "${MAIL_HOSTNAME:-}" ]&& line "MX" "$MAIL_HOSTNAME" -##if [ -n "${PROXY_MODE:-}" ]; then -## if [ "$PROXY_MODE" = "1" ]; then -## line "Proxy" "ja (NPM: ${NPM_IP:-unbekannt})" -## elif [ "$PROXY_MODE" = "dev" ]; then -## line "Proxy" "Entwicklungsmodus" -## else -## line "Proxy" "nein" -## fi -##fi -## -### Services -##printf "${WH}\nServices:${NC}\n" -##printf " nginx … %b\n" "$(svc_state nginx)" -##printf " mariadb … %b\n" "$(svc_state mariadb)" -##printf " redis-server … %b\n" "$(svc_state redis-server)" -##printf " postfix … %b\n" "$(svc_state postfix)" -##printf " dovecot … %b\n" "$(svc_state dovecot)" -##printf " mailwolt-ws … %b\n" "$(svc_state mailwolt-ws)" -##printf " mailwolt-queue … %b\n" "$(svc_state mailwolt-queue)" -##printf " mailwolt-schedule … %b\n" "$(svc_state mailwolt-schedule)" -## -### Zertifikatskurzinfo (nur wenn vorhanden) -##show_cert_exp(){ -## local name="$1" path="$2" -## if [ -r "$path" ]; then -## local exp -## exp="$(openssl x509 -in "$path" -noout -enddate 2>/dev/null | sed 's/notAfter=//')" -## [ -n "$exp" ] && printf "${GY}%s cert:${NC} expires %s\n" "$name" "$exp" -## fi -##} -##show_cert_exp "UI" "/etc/ssl/ui/fullchain.pem" -##show_cert_exp "Webmail" "/etc/ssl/webmail/fullchain.pem" -##show_cert_exp "MX" "/etc/ssl/mail/fullchain.pem" -## -##exit 0 -##SH -##chmod 755 /usr/local/bin/mw-motd \ No newline at end of file +log "[✓] MOTD installiert." \ No newline at end of file diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index cc217e1..5a2146c 100644 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -203,7 +203,7 @@ CLAMAV_ENABLE=${CLAMAV_ENABLE} OPENDMARC_ENABLE=${OPENDMARC_ENABLE} FAIL2BAN_ENABLE=${FAIL2BAN_ENABLE} -BACKUP_ONCALENDAR="*-*-* 03:00:00" +BACKUP_ONCALENDAR="${BACKUP_ONCALENDAR:-*-*-* 03:00:00}" BACKUP_ENABLED=0 BACKUP_INTERVAL=daily BACKUP_RETENTION_DAYS=7