- Added detailed session log (2026-03-10) to document Keycloak hostname root cause and resolution, Git push network issue analysis, and Alertmanager permission fix. - Updated `.env` to fix Keycloak hostname configuration (`KC_HOSTNAME`) and remove deprecated `KC_HOSTNAME_STRICT_HTTPS`. - Enhanced Docker Compose healthchecks for multiple services (e.g., Mailpit, PgAdmin, Alertmanager). Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
5.1 KiB
Session Log — 2026-03-10: Keycloak Hostname Fix & Git Push Analyse
Datum: Di. 10. März 2026
Agent: 🧹 Curator / 👷 Backend Developer
Kontext: Folge-Session zu Keycloak-Härtung vom 09.03.2026
Übersicht
| # | Problem | Status |
|---|---|---|
| 1 | Git Push fehlgeschlagen | ✅ Analysiert (Netzwerkfehler) |
| 2 | Keycloak Admin-Dashboard auf meldestelle-host nicht erreichbar |
✅ Root Cause + Fix dokumentiert |
| 3 | Alertmanager Permission-Fehler | ✅ Identifiziert |
Problem 1: Git Push fehlgeschlagen
Zeitpunkt: 2026-03-09 ~15:50 (aus Vortagslogs)
Symptom
fatal: unable to access 'https://git.mo-code.at/mocode-software/meldestelle/'
Failed to connect to git.mo-code.at port 443 after 133648 ms: Could not connect to server
Analyse
Zwei separate Ereignisse wurden fälschlicherweise als ein Problem wahrgenommen:
- 15:50 — Push rejected (
fetch first): Normaler Git-Fehler, Remote hatte neue Commits.
- Korrekt gelöst durch:
fetch+rebase→Successfully rebased and updated refs/heads/main
- 15:51 — Push nach Rebase fehlgeschlagen: Netzwerkfehler —
git.mo-code.at:443war nicht erreichbar ( Pangolin-Tunnel kurzzeitig down).
Lösung
Kein Code-Fix nötig. Sobald der Server wieder erreichbar ist:
curl -I https://git.mo-code.at # Erreichbarkeit prüfen
git push origin main # Einfach erneut pushen
Gelernt
Der Rebase war korrekt und vollständig. Kein
--force, keingit resetnötig. Pangolin-Tunnel-Ausfälle sind transient — immer zuerst Netzwerk prüfen, bevor Git-Befehle wiederholt werden.
Problem 2: Keycloak Admin-Dashboard auf meldestelle-host nicht erreichbar
Zeitpunkt: 2026-03-10 ~10:17
Symptom
- Lokal (
localhost:8180/admin): ✅ funktioniert - Auf
meldestelle-host(10.0.0.50:8180/admin): ❌ nicht erreichbar - Management-Port (
10.0.0.50:9000): ✅ erreichbar
Root Cause: KC_HOSTNAME ohne Port
In der .env auf meldestelle-host:
KC_HOSTNAME=10.0.0.50 # ← Port fehlt!
Keycloak 26.x (hostname v2) interpretiert KC_HOSTNAME als kanonische Basis-URL.
Ohne Port-Angabe erwartet Keycloak Requests auf Port 80 (HTTP-Standard).
Der tatsächliche Host-Port ist aber 8180 → Mismatch → Admin-Interface antwortet nicht.
Warum Port 9000 funktioniert:
Der Management-Port (KC_HTTP_MANAGEMENT_PORT=9000) ist nicht an KC_HOSTNAME gebunden
und antwortet unabhängig vom Hostname-Mapping immer.
Warum lokal alles funktioniert:
KC_HOSTNAME=localhost # Port 8180 → Container-intern 8080 → passt
localhost ohne Port funktioniert, weil der Browser/curl den Port aus der URL übernimmt
und Keycloak bei KC_HOSTNAME_STRICT=false toleranter ist.
Zusätzliches Problem: Deprecated Variable
KC_HOSTNAME_STRICT_HTTPS=false # deprecated seit Keycloak 26.x (hostname v2)
Diese Variable wird in Keycloak 26.x ignoriert — kann zu unerwartetem Verhalten führen.
Fix für .env auf meldestelle-host
# VORHER:
KC_HOSTNAME=10.0.0.50
KC_HOSTNAME_STRICT=false
KC_HOSTNAME_STRICT_HTTPS=false # deprecated
# NACHHER:
KC_HOSTNAME=10.0.0.50:8180
KC_HOSTNAME_STRICT=false
# KC_HOSTNAME_STRICT_HTTPS entfernt (deprecated in Keycloak 26.x)
Anwendung des Fixes
# Auf meldestelle-host:
nano .env
# KC_HOSTNAME=10.0.0.50 → KC_HOSTNAME=10.0.0.50:8180
# KC_HOSTNAME_STRICT_HTTPS=false → Zeile entfernen
docker compose -f dc-infra.yaml up -d keycloak
# Test nach ~30s:
curl -s http://10.0.0.50:8180/admin/
Gelernt
KC_HOSTNAMEin Keycloak 26.x (hostname v2) muss den vollständigen Hostnamen inkl. Port enthalten, wenn kein Standard-Port (80/443) verwendet wird.KC_HOSTNAME_STRICT_HTTPSist seit Keycloak 26.x deprecated und sollte aus allen.env-Dateien entfernt werden — es wird stillschweigend ignoriert.
Problem 3: Alertmanager Permission-Fehler (Nebenbefund)
Symptom (aus Docker-Logs)
err="open /etc/alertmanager/alertmanager.yaml: permission denied"
Root Cause
Die alertmanager.yaml auf dem Host hat falsche Dateiberechtigungen.
Fix
chmod 644 config/docker/alertmanager/alertmanager.yaml
docker compose -f dc-ops.yaml restart alertmanager
Offene Punkte
| Punkt | Priorität | Beschreibung |
|---|---|---|
| Keycloak Hostname Fix anwenden | 🔴 Hoch | .env auf meldestelle-host korrigieren |
| Alertmanager Permission Fix | 🟡 Mittel | chmod 644 auf alertmanager.yaml |
KC_HOSTNAME_STRICT_HTTPS bereinigen |
🟢 Niedrig | Deprecated Variable aus allen .env-Dateien entfernen |