Badges & Einbettung
Nicht jeder Besucher deiner Website geht auf die Statusseite. Ein kleiner Hinweis im Footer oder im Hilfebereich holt die Information dorthin, wo die Leute ohnehin sind.
Alle Bausteine findest du unter Statusseiten → deine Seite → Einbetten, jeweils mit Vorschau und fertigem Code zum Kopieren.
Status-Badge
Ein schmales SVG, das den Gesamtstatus zeigt — wie die Build-Badges in einem Repository.
https://deine-seite.statuswerk.eu/badge.svg
Parameter:
| Parameter | Werte | Standard |
|---|---|---|
style |
flat, flat-square, plastic |
flat |
theme |
light, dark |
light |
label |
beliebiger Text | Status |
Beispiel: /badge.svg?style=flat-square&theme=dark&label=API
In Markdown:
[](https://deine-seite.statuswerk.eu)
Weil es ein Bild ist, funktioniert es überall — README, Wiki, Intranet-Seite.
Widget
Etwas größer als das Badge, als <iframe> eingebunden, mit dem Gesamtstatus in Textform.
<iframe src="https://deine-seite.statuswerk.eu/embed/badge"
width="300" height="36" frameborder="0" scrolling="no"></iframe>
Parameter: theme (light oder dark). Den fertigen Code mit deiner Adresse findest du in den Einstellungen der Statusseite.
Feeds
Zwei Feeds ohne jede Einbettung:
- RSS/Atom unter
/feed.rss— alle Vorfälle mit ihren Updates. Für Feedreader oder eine eigene Weiterverarbeitung. - iCal unter
/calendar.ics— geplante Wartungen als Kalender-Abo. Siehe Wartungen.
Beide lassen sich unter Abonnements abschalten.
Status-API
Den Status als JSON, ohne Token — für Skripte, Dashboards und die eigene Website. Gedacht für deine Kunden: Sie lesen damit, was die Seite ohnehin öffentlich zeigt.
curl https://status.example.com/summary.json
const res = await fetch('https://status.example.com/summary.json');
const { status } = await res.json(); // status.indicator: "operational", "major_outage" …
Die Antwort enthält:
page— Name, Adresse, Sprache und Zeitzone der Seite.status— der Gesamtstatus wie im Banner:indicator(operational,maintenance,degraded_performance,partial_outage,major_outage) unddescriptionals Text in der Sprache der Seite.uptime—percentüberdaysTage, wie die Seite es zeigt;null, wenn die Uptime ausgeblendet ist.groupsundcomponents— mitid,name,status,group_idunduptimeje Komponente (null, wenn sie keine Uptime zeigt).incidents— die offenen Vorfälle mittitle,status,impact,url,started_at, den betroffenencomponentsund dem neuesten Update (latest_update, die Nachricht als HTML).maintenances— kommende und laufende Wartungen, höchstens fünf, mit Zeitraum undurl.
Zeiten stehen in ISO 8601, UTC. Es steht nur darin, was die Seite zeigt: keine ausgeblendeten Komponenten oder Gruppen, keine nicht gelisteten Einträge, keine, die noch auf Freigabe warten — und nie etwas über Abonnenten. Vergangene Vorfälle stehen im RSS-Feed und auf der Verlaufsseite.
Jede Website darf die Adresse per JavaScript lesen (CORS ist offen). Die Antwort darf 30 Sekunden zwischengespeichert werden; je Besucher sind 120 Abrufe pro Minute möglich. Der Footer der Statusseite verlinkt sie als „API“, solange sie angeboten wird. Abschalten lässt sie sich unter Einbetten → Status-API, über die API mit allow_public_api. Abgeschaltet antwortet die Adresse mit 404.
Auf einer passwortgeschützten oder netzwerkbeschränkten Seite liefert sie keine Daten (siehe unten). Wer die Seite entsperrt hat oder im freigegebenen Netz sitzt, bekommt sie zwar — aber ohne offenes CORS und ohne Zwischenspeicher, damit weder eine fremde Website noch ein Proxy sie weiterreicht. Für private Seiten, Schreibzugriffe und alles darüber hinaus gibt es die API mit Token.
Einbettung und private Seiten
Badge, Widget und Status-API funktionieren nicht auf einer passwortgeschützten oder netzwerkbeschränkten Seite. Ein Bild, das auf einer fremden Website geladen wird, bringt weder Passwort noch Sitzung mit — es bekommt eine Fehlermeldung statt eines Status.
Das ist kein Fehler, sondern die logische Folge: ein öffentlich eingebettetes Badge einer privaten Seite wäre ein Weg, den Status trotzdem auszulesen. Wenn du beides brauchst, führe zwei Statusseiten — eine öffentliche für das Badge, eine private für die Details.
Aktualität
Badge und Widget werden bei jedem Aufruf frisch erzeugt. Manche Plattformen — GitHub zum Beispiel — legen Bilder allerdings in einen eigenen Zwischenspeicher, dort kann die Anzeige ein paar Minuten hinterherhinken.