Diese Seite wird angezeigt, wenn nicht mehr geht.
  • HTML 60.4%
  • CSS 39.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
forgejo-actions[bot] affc0e5c70 chore(release): 2026.41
2026-10-12 04:11:39 +00:00
.forgejo/workflows ci(renovate): pass heartbeat and coverage report inputs 2026-10-10 16:57:49 +02:00
archetypes chore(lint): pre-commit einrichten 2026-08-19 10:52:25 +02:00
assets feat(errorpage): render maintenance page as error page template 2026-09-18 08:58:32 +02:00
content chore(lint): pre-commit einrichten 2026-08-19 10:52:25 +02:00
layouts/partials feat(errorpage): render maintenance page as error page template 2026-09-18 08:58:32 +02:00
.editorconfig-checker.json chore(lint): pre-commit einrichten 2026-08-19 10:52:25 +02:00
.gitignore Daily 2023-09-01 11:17:24 +02:00
.mailmap chore(lint): pre-commit einrichten 2026-08-19 10:52:25 +02:00
.markdownlint.yml chore(lint): pre-commit einrichten 2026-08-19 10:52:25 +02:00
.pre-commit-config.yaml chore(pre-commit): enable no-infra-leaks and pin v1.1.3 2026-09-28 14:29:36 +02:00
CHANGELOG.md chore(release): 2026.41 2026-10-12 04:11:39 +00:00
go.mod chore(hugo): Module aktualisieren 2026-10-09 04:52:33 +00:00
go.sum chore(hugo): Module aktualisieren 2026-10-09 04:52:33 +00:00
hugo.yaml feat(errorpage): render maintenance page as error page template 2026-09-18 08:58:32 +02:00
LICENSE Initial commit 2023-09-01 09:22:47 +02:00
package-lock.json chore(deps): lock file maintenance 2026-09-27 23:02:24 +00:00
package.json feat(deps)!: Update dependency postcss-cli ( 11.0.1 → 12.0.0 ) 2026-09-15 12:47:53 +00:00
README.md feat(errorpage): render maintenance page as error page template 2026-09-18 08:58:32 +02:00
renovate.json5 batch 2025-04-28 13:14:38 +02:00

Maintenance Site

Fehlerseite

Hugo rendert die Startseite ein zweites Mal im Output-Format errorpage nach /_error/. Diese Fassung ist die Vorlage der Fehlerseite, die Traefik bei 502, 503 und 504 anzeigt: die komplette Wartungsseite, ganz oben eine Karte mit Statuscode, Ursache, betroffenem Hostnamen und Uhrzeit. Ausgeliefert wird sie von nginx in k3s-prod (apps/maintenance-page) auf git.casa-due-pur.de unter /error/<status>, nginx setzt die Werte per SSI ein. Die Texte je Statuscode stehen in der nginx-Konfiguration, nicht hier.

Die Karte zeigt zusätzlich eine Request-ID, unter der nginx den Fehler als JSON-Zeile protokolliert, und die vollständige URL. Ein kleines Skript liest sie aus der Adresszeile und baut daraus den Text für „Details kopieren“ und die vorausgefüllte Mail hinter „Störung melden“. Ohne JavaScript bleiben Adresse, Zeitpunkt und Request-ID sichtbar.

Die Karte kommt aus custom_body.html, das Theme bindet das Partial am Ende von <body> ein. Beide Partials prüfen .RelPermalink auf /_error/, auf der normalen Startseite erscheint die Karte nicht. error-card.css blendet in der Fehlerfassung den Kopfbereich aus und legt die Karte darüber.

Die Seite erscheint unter dem Host der ausgefallenen Anwendung, etwa cloud.zyria.de. Deshalb gilt:

  • baseURL ist /_maintenance/. Traefik leitet diesen Pfad auf allen Hosts an die Wartungsseite, CSS, JavaScript, Schriften und Bilder sind so überall same-origin. Verweise dürfen nicht an baseURL vorbei auf / zeigen.
  • SSI-Anweisungen entstehen über das Partial ssi.html, weil html/template Kommentare aus Templates entfernt. minify.tdewolff.html.keepComments in hugo.yaml verhindert, dass --minify sie wieder entfernt. Das lässt auch die übrigen HTML-Kommentare der Seite stehen.
  • Das Kartendesign entspricht der Ersatzvorlage error.html in k3s-prod, die nginx nutzt, wenn diese Vorlage fehlt. Änderungen am Aussehen gehören in beide.

Lokal ansehen lässt sich nur das Gerüst ohne eingesetzte Werte: hugo server und http://localhost:1313/_maintenance/_error/.