50 lines
2.6 KiB
Bash
50 lines
2.6 KiB
Bash
#!/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}
|
|
"
|