#!/usr/bin/env bash set -euo pipefail source ./lib.sh ok(){ echo -e " [${GREEN}OK${NC}]"; } fail(){ echo -e " [${RED}FAIL${NC}]"; } echo "[+] Quick-Healthchecks…" printf " • MariaDB … " ; mysqladmin ping --silent >/dev/null 2>&1 && ok || fail printf " • Redis … " ; if command -v redis-cli >/dev/null 2>&1; then if [[ -n "${REDIS_PASS:-}" && "${REDIS_PASS}" != "null" ]]; then redis-cli -a "${REDIS_PASS}" ping 2>/dev/null | grep -q PONG && ok || fail else redis-cli ping 2>/dev/null | grep -q PONG && ok || fail; fi else fail; fi # PHP-FPM detect_php_fpm_sock(){ for v in 8.3 8.2 8.1 8.0 7.4; do s="/run/php/php${v}-fpm.sock"; [[ -S "$s" ]] && { echo "$s"; return; }; done [[ -S "/run/php/php-fpm.sock" ]] && { echo "/run/php/php-fpm.sock"; return; } echo "127.0.0.1:9000" } PHP_FPM_SOCK="$(detect_php_fpm_sock)" printf " • PHP-FPM … " ; if [[ "$PHP_FPM_SOCK" == 127.0.0.1:9000 ]]; then ss -ltn | grep -q ":9000 " && ok || fail; else [[ -S "$PHP_FPM_SOCK" ]] && ok || fail; fi # App HTTP printf " • App … " ; if command -v curl >/dev/null 2>&1; then if [[ -f "/etc/ssl/ui/fullchain.pem" && -f "/etc/ssl/ui/privkey.pem" ]]; then curl -skI "https://127.0.0.1" >/dev/null 2>&1 && ok || fail; else curl -sI "http://127.0.0.1" >/dev/null 2>&1 && ok || fail; fi else echo -e " ${GREY}(curl fehlt)${NC}"; fi check_port(){ local label="$1" cmd="$2"; printf " • %-5s … " "$label"; timeout 8s bash -lc "$cmd" >/dev/null 2>&1 && ok || fail; } check_port "25" 'printf "QUIT\r\n" | nc -w 3 127.0.0.1 25' check_port "465" 'printf "QUIT\r\n" | openssl s_client -connect 127.0.0.1:465 -quiet -ign_eof' check_port "587" 'printf "EHLO x\r\nSTARTTLS\r\nQUIT\r\n" | openssl s_client -starttls smtp -connect 127.0.0.1:587 -quiet -ign_eof' check_port "110" 'printf "QUIT\r\n" | nc -w 3 127.0.0.1 110' check_port "995" 'printf "QUIT\r\n" | openssl s_client -connect 127.0.0.1:995 -quiet -ign_eof' check_port "143" 'printf ". LOGOUT\r\n" | nc -w 3 127.0.0.1 143' check_port "993" 'printf ". LOGOUT\r\n" | openssl s_client -connect 127.0.0.1:993 -quiet -ign_eof' # Abschluss echo -e " ${GREEN}${BAR}${NC} ${GREEN} ✔ ${APP_NAME} Bootstrap abgeschlossen${NC} ${GREEN}${BAR}${NC} Aufruf UI: ${CYAN}$( [[ -f /etc/ssl/ui/fullchain.pem ]] && echo https || echo http )://${SERVER_PUBLIC_IPV4}${NC} UI Host bevorzugt: ${GREY}${UI_HOST}${NC} Mail-Host: ${GREY}${MAIL_HOSTNAME}${NC} Nginx Site: ${GREY}/etc/nginx/sites-available/${APP_USER}.conf${NC} TLS (stabile Pfade): ${GREY}/etc/ssl/{ui,webmail,mail}/{fullchain.pem,privkey.pem}${NC} ${GREEN}${BAR}${NC} "