Laudende Default seite entfernen

main
boksbc 2025-10-18 09:52:29 +02:00
parent c7bcf3306d
commit 6f7c035884
3 changed files with 149 additions and 21 deletions

View File

@ -228,7 +228,7 @@ if [[ -f "${APP_DIR}/package.json" && ! -f "${APP_DIR}/public/build/manifest.jso
fi
# --- Abschluss: Caches + Rechte + Reloads -----------------------------------
sudo -u "$APP_USER" -H bash -lc "cd ${APP_DIR} && php artisan optimize:clear && php artisan config:cache"
sudo -u "$APP_USER" -H bash -lc "cd ${APP_DIR} && php artisan optimize:clear && php artisan config:cache && php artisan optimize:clear"
chown -R "$APP_USER":"$APP_GROUP" "$APP_DIR"
chmod -R u=rwX,g=rwX,o=rX "$APP_DIR"

View File

@ -38,4 +38,6 @@ check process nginx with pidfile /run/nginx.pid
EOF
chmod 600 /etc/monit/monitrc
monit -t && systemctl enable --now monit
monit reload || true
monit reload || true
log "[✓] Monit konfiguriert und gestartet"

View File

@ -6,9 +6,24 @@ log "MOTD installieren …"
install -d /usr/local/bin
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"
# 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'
:::: :::: ::: ::::::::::: ::: ::: ::: :::::::: ::: :::::::::::
+:+:+: :+:+:+ :+: :+: :+: :+: :+: :+: :+: :+: :+: :+:
@ -18,24 +33,100 @@ 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 "${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"
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"
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 +x /usr/local/bin/mw-motd
chmod 755 /usr/local/bin/mw-motd
if [[ -d /etc/update-motd.d ]]; then
cat >/etc/update-motd.d/10-mailwolt <<'SH'
@ -51,6 +142,41 @@ 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