From d80a5d805032dad1d4fc97f00dc3d6d2094b4083 Mon Sep 17 00:00:00 2001 From: sysops Date: Sun, 21 Jun 2026 22:59:31 +0200 Subject: [PATCH] chore: echten HTTP-Health-Check statt nur systemd-Status in update.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit systemctl is-active zeigt nur, dass der Prozess läuft — nicht, dass er tatsächlich auf Anfragen antwortet (z.B. bei hängendem DB-Connect). Beide Dienste werden jetzt per HTTP gegen /api/health (Backend) bzw. Port 3000 (Frontend) mit Retry (15x1s) geprüft, bevor das Update als erfolgreich gemeldet wird. --- update.sh | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/update.sh b/update.sh index e3f076b..e6e59e7 100755 --- a/update.sh +++ b/update.sh @@ -192,12 +192,28 @@ log "Dienste gestartet" # Schema-Änderungen am Index nötig: manuell mit # archivmail reindex --config /etc/archivmail/config.yml -sleep 2 BACKEND_OK=0 FRONTEND_OK=0 -systemctl is-active --quiet archivmail && BACKEND_OK=1 || true -systemctl is-active --quiet archivmail-web && FRONTEND_OK=1 || true +# Health-Check statt nur systemd-Status: Backend muss tatsächlich auf +# HTTP antworten (Prozess kann laufen, aber z.B. an DB-Connect hängen). +info "Prüfe Backend-Health (/api/health)..." +for i in $(seq 1 15); do + if systemctl is-active --quiet archivmail && curl -fsS -o /dev/null --max-time 2 http://127.0.0.1:8080/api/health 2>/dev/null; then + BACKEND_OK=1 + break + fi + sleep 1 +done + +info "Prüfe Frontend-Health (Port 3000)..." +for i in $(seq 1 15); do + if systemctl is-active --quiet archivmail-web && curl -fsS -o /dev/null --max-time 2 http://127.0.0.1:3000/ 2>/dev/null; then + FRONTEND_OK=1 + break + fi + sleep 1 +done echo "" echo " ┌──────────────────────────────────────┐"