Desktop-Benachrichtigungen über HTTP.
Linux-Desktop-Benachrichtigungen mit einem einzigen HTTP-POST an jedes Container-Display senden. Der Notification-Server ruft notify-send auf dem angegebenen Display auf.
# Benachrichtigung an Display 0 senden
curl -X POST "https://abc123-def456-n-1.node-us-1.containers.hoody.com/api/v1/notifications/notify"
-d '{"display":"0","summary":"Build Complete","urgency":"normal"}'
# Response
{"success":true}
Drei Schritte. Je ein HTTP-Aufruf.
Jede Benachrichtigung folgt dem gleichen Lifecycle: auslösen, Verlauf abrufen oder live streamen, dann beenden wenn erledigt.
Trigger
POST /notify sendet einen notify-send-Aufruf an das Ziel-X11-Display. display, summary und optional urgency, body, expire_time oder icon angeben.
# Fire a notification
curl -X POST .../notify
{"display":"0",
"summary":"Build Complete",
"urgency":"normal"}
{"success":true}
Zustellen
notify-send übergibt den Alert an den Notification-Daemon des Systems auf dem Ziel-X11-Display. Er erscheint in jeder verbundenen Display-Session und läuft je nach urgency und expire_time automatisch ab.
# notify-send on display :0
notify-send → X11 :0
▸ Build Complete
normal · auto-expires
Abrufen oder streamen
GET /[display] ruft den Benachrichtigungsverlauf ab, mit optionalen Filtern für limit, since, username und session. Per WebSocket zu /stream?displays=0 verbinden für Echtzeit-Push-Updates.
# Poll history
curl .../0?limit=50
# Or stream live
new WebSocket(
"wss://.../stream?displays=0"
)
niedrig. normal. kritisch.
Drei Dringlichkeitsstufen sind direkt auf notify-send-Verhalten abgebildet. Die richtige auswählen und der Notification-Daemon erledigt den Rest.
Verschwindet schnell. expire_time: 3000 für Hintergrundaufgaben, Telemetrie oder Informations-Pings setzen, die nicht stoeren sollen.
"urgency": "low",
"expire_time": 3000
Standard. Standardmäßig, wenn urgency weggelassen wird. Der Notification-Daemon zeigt sie beim konfigurierten Timeout und schließt sie automatisch.
"urgency": "normal"
// default — weglassen, um dies zu nutzen
Persistent — erfordert manuelles Schließen. expire_time: 0 für Systemfehler, Build-Fehler oder alles, was sofortige Aufmerksamkeit braucht.
"urgency": "critical",
"expire_time": 0
Verlauf abrufen oder live streamen.
Zwei Lesekanaele für verschiedene Bedürfnisse: REST für Audit-Logs und Einmalabfragen, WebSocket für Dashboards und Echtzeit-Monitoring.
Benachrichtigungsverlauf für ein Display abrufen. Nach limit, since-Zeitstempel, Benutzername oder Session-ID filtern.
# Letzte 50 für Display 0 abrufen
curl ".../0?limit=50"
# zeitgefiltert
curl ".../0?since=1749025000000"
JSON-Array von Benachrichtigungsobjekten mit id, summary, urgency, timestamp und icon_url.
Ein oder mehrere Displays mit displays=0,:1,2 oder displays=all abonnieren. Erhält Push-Nachrichten, wenn sie ankommen. Für Dashboards und Monitoring.
# Öffne einen WebSocket
const ws = new WebSocket(
"wss://.../stream?displays=0"
)
# bei Nachricht
ws.onmessage = (e) => {
const msg = JSON.parse(e.data)
// msg.summary, msg.body, msg.urgency
}
[ type: "notification", data: [ id, summary, urgency, timestamp ] ] pushed on every new notification.
Von Build-Pipelines bis ML-Jobs.
Überall wo ein lang laufender Prozess den Abschluss oder Fehler signalisieren muss, genügt ein HTTP-POST.
CI/CD-Alarme
Lang laufende Builds sind abgeschlossen. HTTP-POST löst eine Benachrichtigung auf dem Container-Display aus — sichtbar in jeder aktiven Display-Session.
System-Monitoring
Server-Alarme werden als Desktop-Benachrichtigung auf dem X11-Display des Containers weitergeleitet, sichtbar in jeder aktiven Display-Session.
Lang laufende Aufgaben
Datenexporte, Video-Rendering, ML-Modell-Training, Backup-Abschluss — benachrichtigen wenn fertig, ohne zu pollen.
Automatisierte Workflows
Cron-Jobs, geplante Aufgaben und Automatisierungs-Skripte benachrichtigen das Container-Display bei Abschluss oder Fehler.
8 Endpoints. Ein Benachrichtigungsserver.
Auslösen, abrufen, streamen und verwerfen von Desktop-Benachrichtigungen — plus Icons und Überwachung — alles über einfaches HTTP.
Base-URL https://abc123-def456-n-1.node-us-1.containers.hoody.com
Auslösen
1 EndpointPOST .../api/v1/notifications/notify
Abrufen & Streamen
2 EndpointsGET .../api/v1/notifications/{display}?limit=50
Icons
1 EndpointGET .../api/v1/notifications/icons/{iconId}
Gesundheit & Metriken
1 EndpointGET .../api/v1/notifications/health
Desktop-Benachrichtigungen über HTTP.
Jedes Skript, jeder Service oder jede Automatisierung, die eine HTTP-Anfrage stellen kann, kann eine Desktop-Benachrichtigung an dein Container-Display senden.