Zum Inhalt

Öffentliche Seite & Integrationen

Öffentliche Statusseite

  • Kopfzeile mit Logo, dem Anwendungstitel (applicationTitle, sonst siteName) und den Buttons für Zeitzone, Theme, Abonnement und Push.
  • Gesamtbanner mit dem aktuellen Status, einer relativen Angabe der letzten Aktualisierung und dem absoluten Zeitstempel. Der Zeitstempel steht nur auf der Startseite im Banner, nicht in der Kopfzeile.
  • Kennzahlen unter dem Banner: aktive Incidents und Ausfälle (gezählt werden Komponenten), aktive Wartungen und Tage seit dem letzten Incident oder Ausfall.
  • Service-Gruppen mit einer Karte je Gruppe. Jede Komponente zeigt einen 90-Tage-Balken, ein Segment je UTC-Kalendertag, gefärbt nach dem schwersten Status dieses Tages.
  • Aktive Incidents und Ausfälle, sortiert nach Schweregrad.
  • Geplante und laufende Wartungen.
  • Historie (/history) mit den Ausfällen, gelösten Incidents und abgeschlossenen Wartungen der letzten sechs Monate, 20 Einträge je Seite mit Paginierung.
  • Service-Detail (/service/[id]) mit Verfügbarkeitstabelle, monatlichen und quartalsweisen SLA-Balken, dem zugeordneten SLA-Zeitplan (sonst 24/7) sowie den Incidents, Wartungen und Ausfällen des Services.
  • Automatische Aktualisierung: Ist status_refresh_minutes größer als 0, lädt sich die Startseite in diesem Intervall neu. Der Standard ist 0, also aus.

Angemeldete Teammitglieder sehen auf der Statusseite zusätzlich die internen Services (Modus active_internal).

Darstellung auf dem Smartphone

  • Unter dem Breakpoint sm zeigt der 90-Tage-Balken nur die letzten 30 Tage. In der Übersicht nennt die Beschriftung dann 30 Tage, und der Prozentwert ist ausgeblendet. Auf der Service-Detailseite bleiben Beschriftung und Prozentwert unverändert. Ab sm wird der volle Zeitraum angezeigt.
  • Tippen, Klicken oder Tastaturfokus auf ein Segment zeigt darunter eine Detailzeile mit Datum und Status. Tippen außerhalb, Escape oder Fokusverlust schließt sie. Beim Überfahren mit der Maus erscheint weiterhin ein Tooltip.
  • Monats- und Quartalsbalken werden unter sm durch eine Liste mit Wert und Ziel je Zeitraum ersetzt.
  • Die Verfügbarkeitstabelle wird unter md als Karte je Zeitraum dargestellt.
  • Das Logo ist unter sm kleiner. Der Push-Button steckt unter md in einem Menü hinter einer Glocke.

Besucher-Zeitzone

Besucher können alle Zeiten des öffentlichen Portals zwischen der Zeitzone des Betreibers und ihrer Browser-Zeitzone umschalten (lib/viewer-timezone.ts, components/viewer-timezone.tsx).

  • Der Globus-Button steht in der Kopfzeile vor dem Theme-Umschalter. Er erscheint nur, wenn der aktuelle UTC-Versatz der Browser-Zone von der App-Zone abweicht.
  • Die Wahl wird im Browser gespeichert (localStorage, Schlüssel tz-mode) und gilt sofort auch in anderen geöffneten Tabs.
  • Der Server rendert immer in der App-Zone. Die gespeicherte Wahl greift erst nach dem Laden der Seite, dadurch gibt es keine Hydration-Fehler.
  • Nicht umgeschaltet werden die Tage des Uptime-Balkens (UTC-Tage) und die Zeiten auf „My data“. Im Admin gilt immer die App-Zone.

Themes

  • Hell ist der Standard. Dunkel lässt sich über den Umschalter in der Kopfzeile wählen. Die Wahl wird im Browser gespeichert.
  • Beim ersten Besuch folgt das Theme prefers-color-scheme. Ein kleines Inline-Skript setzt es vor dem ersten Paint, daher gibt es kein Aufblitzen.
  • Der Umschalter hat ein festes Label („Dark mode“ bzw. „Dunkelmodus“) und zeigt den Zustand über aria-pressed.
  • Die Statusfarben sind in beiden Themes gleich. Das Status-Badge behält seine eigene dunkle Darstellung.

Sprachen

Die öffentliche Oberfläche ist auf Englisch und Deutsch verfügbar (next-intl, messages/en.json und messages/de.json). Die Sprache ist eine Site-weite Einstellung (settings.language, Standard en), keine Auswahl pro Besucher. Es gibt kein Sprach-Routing in der URL. Eingestellt wird sie im Admin in der Karte Local Settings. <html lang> folgt der Einstellung.

Übersetzt sind alle öffentlichen Seiten: Statusseite, Service-Detail, Historie, Badge-Seite, Impressum, Datenschutz, die Seiten zum Bestätigen und Abmelden, „My data“, die 404-Seite, die SLA- und Uptime-Komponenten sowie die Fehlermeldungen der öffentlichen Formulare.

Weiterhin nur auf Englisch sind:

  • die Links im Seitenfuß und „Powered by SLAtus“
  • die relative Zeitangabe „Updated … ago“ im Banner
  • Fehlermeldungen des Push-Buttons
  • Statuslabel und „Related incident“ in den Ausfallkarten der Service-Detailseite
  • die Texte im Badge-Bild, der RSS-Feed und die Mails zu Abmeldung und Datenauskunft
  • die API-Dokumentation unter /api-docs und die Admin-Oberfläche. Beide sind als englischer Teilbaum (lang="en") ausgezeichnet.

Datums-, Zeit- und Zahlenformate

Einstellbar im Admin unter Settings → Locale:

  • Zeitzone (timezone) für Anzeige und für die Eingabe von Wartungszeiten. Sommerzeitwechsel werden korrekt behandelt. Besucher können zusätzlich auf ihre Browser-Zone umschalten (siehe oben).
  • Anzeige der Zeitzone neben Zeitstempeln: voller Name, Kurzform als Offset oder ausgeblendet.
  • Kurzes und langes Datumsformat (Vorlagen).
  • Dezimaltrennzeichen (. oder ,) und Nachkommastellen (1 bis 4) für alle Verfügbarkeits- und SLA-Werte, sowohl in der Anzeige als auch in Eingabefeldern.

Incident-Feed und Badge

Endpunkt Zweck
/feed.xml RSS-Feed der Incidents für Feedreader und Chat-Tools
/badge.svg Dynamisches SVG-Statusbadge. Parameter: style=flat und label=…. Als Bild in einer README oder einem Wiki einbinden.
/badge Einbettbare Seite, die das Badge anzeigt

Rechtstexte

  • /impressum zeigt die Unternehmensangaben aus den Einstellungen (Name, Adresse, Kontakt, Impressumstext). Sind keine Angaben hinterlegt, erscheint ein Hinweis, dass kein Impressum konfiguriert ist.
  • /dataprotectionpolicy zeigt den Datenschutztext, der in den Einstellungen als HTML hinterlegt ist. Das HTML wird vor der Ausgabe bereinigt. Nur h1, h2, h3, b und i bleiben erhalten, alle Attribute werden entfernt.

Gelöste Incidents anzeigen

show_resolved_minutes hält einen gelösten Incident für die angegebene Anzahl Minuten nach seiner Auflösung sichtbar, grün markiert. Der Standard ist 0, der Incident verschwindet dann sofort. Er zählt nicht zu den aktiven Incidents und Ausfällen in den Kennzahlen.

Öffentliche APIs

Für maschinellen Zugriff siehe Öffentliche API: /api/status (JSON), /feed.xml (RSS), /badge.svg (SVG) und /openapi.json mit der interaktiven Dokumentation unter /api-docs.