diff --git a/deploy.sh b/deploy.sh index 7fd9c57..2cd71b4 100644 --- a/deploy.sh +++ b/deploy.sh @@ -51,7 +51,8 @@ sleep 5 "$PLINK" -batch -hostkey "$HOSTKEY" -i "$KEY" -P "$PORT" "$SERVER" " docker ps --filter name=mp- --format 'table {{.Names}}\t{{.Status}}' && curl -s https://mieterportal.hocks.eu/ | grep -o 'index-[^\"]*\.js' | head -1 && - curl -s https://mieterportal.hocks.eu/api/healthz + curl -sf https://mieterportal.hocks.eu/api/healthz | grep -q '\"datenbank\":true' && + echo 'API erreichbar (Health OK)' || echo 'WARNUNG: API-Healthcheck fehlgeschlagen (nginx ggf. neu starten: docker restart mp-portal)' " echo echo "Fertig: https://mieterportal.hocks.eu" diff --git a/docker/templates/default.conf.template b/docker/templates/default.conf.template index 801ce83..36b4231 100644 --- a/docker/templates/default.conf.template +++ b/docker/templates/default.conf.template @@ -9,6 +9,11 @@ server { gzip_types text/css application/javascript image/svg+xml application/json; gzip_min_length 1024; + # Docker-eigener DNS: Upstream-Namen bei jeder Anfrage neu auflösen. + # Ohne das puffert nginx die Container-IP vom Start – nach einem Recreate + # der API (neue IP) liefert jede Anfrage 502, bis nginx selbst neu startet. + resolver 127.0.0.11 valid=10s; + # HTML nie cachen (Assets sind hash-benannt → ein Reload genügt) location = /index.html { add_header Cache-Control "no-cache" always; @@ -25,7 +30,8 @@ server { # NIE im Repo und NIE im Browser – der Endpunkt ist nur vom Server erreichbar. location = /api/mail/send { limit_except POST { deny all; } - proxy_pass http://mp-mail-api:8080/send; + set $mail_api http://mp-mail-api:8080; + proxy_pass $mail_api/send; proxy_set_header Host $host; proxy_set_header X-Api-Token "${MAIL_API_TOKEN}"; proxy_set_header X-Request-Source mieterportal-nginx; @@ -36,7 +42,8 @@ server { # Portal-API (Node/Express + PostgreSQL): Auth, Daten, Benachrichtigungen, # Dokumenten-Uploads/-Downloads (PDF bis 25 MB). location /api/ { - proxy_pass http://mp-api:3000; + set $portal_api http://mp-api:3000; + proxy_pass $portal_api; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; diff --git a/kimi.md b/kimi.md index c41568f..833ec1a 100644 --- a/kimi.md +++ b/kimi.md @@ -205,7 +205,12 @@ src/pages/Zaehler.tsx: VerlaufDialog (Liste neueste zuerst, Auffälligkeits- Badge, Löschen für Verwaltung), StandEintragenDialog (Mieter + Verwaltung, Warnbox bei Anomalie statt sofortigem Schließen), Anomalie-Badge auf der Karte. Achtung Git-Bash: Pfad-Argumente an node werden von MSYS umgewandelt – -Pfade an node-Skripte OHNE führenden / übergeben. +Pfade an node-Skripte OHNE führenden / übergeben. AUCH BEHOBEN: nginx +pufferte Container-IPs beim Start → nach mp-api-Recreate lieferte jede API- +Anfrage 502 (root cause mehrerer „schwarzer Bildschirm“-/Reload-Probleme). +Fix: resolver 127.0.0.11 + Variablen-proxy_pass in +docker/templates/default.conf.template; deploy.sh prüft Health jetzt inhaltlich +(curl -sf + grep datenbank:true). **Erledigt 04.10. (v1.24):** Anleitungsseite /anleitung (Seite „Anleitung" im Menü, sichtbar für Mieter und Verwaltung). Inhalte rollenbasiert in diff --git a/tmp/ck.txt b/tmp/ck.txt new file mode 100644 index 0000000..1c6a584 --- /dev/null +++ b/tmp/ck.txt @@ -0,0 +1,5 @@ +# Netscape HTTP Cookie File +# https://curl.se/docs/http-cookies.html +# This file was generated by libcurl! Edit at your own risk. + +#HttpOnly_mieterportal.hocks.eu FALSE / TRUE 1791152848 mp_session 97a602ba67b78b15c5e73bed11b39f5b5e8ad500c4227c44e9d17c68f2df2737 diff --git a/tmp/del.txt b/tmp/del.txt new file mode 100644 index 0000000..c3f8bc3 --- /dev/null +++ b/tmp/del.txt @@ -0,0 +1,2 @@ +zr-1791124278944-zubgzl +zr-1791124279087-8qlrvl diff --git a/tmp/login.json b/tmp/login.json new file mode 100644 index 0000000..3fe3a02 --- /dev/null +++ b/tmp/login.json @@ -0,0 +1 @@ +{"benutzername":"j.hinterstein","passwortHash":"c57a5df4f97ed6914116e5fd1348406064834f22503d890eb571af442ac4b4c3"} \ No newline at end of file diff --git a/tmp/r1.json b/tmp/r1.json new file mode 100644 index 0000000..1dbb233 --- /dev/null +++ b/tmp/r1.json @@ -0,0 +1 @@ +{"stand":660,"standAm":"2026-10-04"} \ No newline at end of file diff --git a/tmp/r2.json b/tmp/r2.json new file mode 100644 index 0000000..c9a5af5 --- /dev/null +++ b/tmp/r2.json @@ -0,0 +1 @@ +{"stand":600,"standAm":"2026-10-04"} \ No newline at end of file