Zum Inhalt springen
Kit / Benachrichtigungen / Hauptbereich
NotificationsHoody-Benachrichtigungen

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.

notify · hoody-n

# Benachrichtigung an Display 0 senden

curl -X POST ".../notify"

-d '["display":"0","summary":"Build Complete","urgency":"normal"]'

# Response

["message":"Notification sent successfully","success":true]

Kit / Benachrichtigungen / Lebenszyklus
Wie es funktioniert

Drei Schritte. Je ein HTTP-Aufruf.

Jede Benachrichtigung folgt dem gleichen Lifecycle: auslösen, Verlauf abrufen oder live streamen, dann beenden wenn erledigt.

01

Trigger

POST /notify sendet einen notify-send-Aufruf an das Ziel-X11-Display. display, summary und optional urgency, body, expire_time oder icon angeben.

notifications — auslösen

# Fire a notification

POST /notify

 

# Request body

["display":"0","summary":"Build Complete",

"urgency":"normal","body":"All tests passed"]

02

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.

notifications — abrufen

# Poll history

curl ".../0?limit=50"

 

# Or open a WebSocket

new WebSocket("wss://.../stream?displays=0")

03

Dismiss

POST /dismiss markiert Benachrichtigungs-IDs als erledigt — sie werden aus nachfolgenden GET-Antworten herausgefiltert. DELETE /dismiss setzt den Erledigt-Status zurück, sodass sie wieder sichtbar werden.

notifications — beenden

# Dismiss by ID

POST /dismiss

["displayId":"0","notificationIds":[10,11,12]]

 

# Clear dismissed state

DELETE /dismiss?displayId=0

Kit / Benachrichtigungen / urgency
Dringlichkeitsstufen

low. normal. critical.

Drei Dringlichkeitsstufen sind direkt auf notify-send-Verhalten abgebildet. Die richtige auswählen und der Notification-Daemon erledigt den Rest.

low

Verschwindet schnell. expire_time: 3000 für Hintergrundaufgaben, Telemetrie oder Informations-Pings setzen, die nicht stoeren sollen.

"urgency": "low",

"expire_time": 3000

normal

Standard. Standardmäßig, wenn urgency weggelassen wird. Der Notification-Daemon zeigt sie beim konfigurierten Timeout und schließt sie automatisch.

"urgency": "normal"

// default — omit to use this

critical

Persistent — erfordert manuelles Schließen. expire_time: 0 für Systemfehler, Build-Fehler oder alles, was sofortige Aufmerksamkeit braucht.

"urgency": "critical",

"expire_time": 0

Kit / Benachrichtigungen / channels
Channels

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.

GETGET /[display]Fetch
WSWS /streamStream

Benachrichtigungsverlauf für ein Display abrufen. Nach limit, since-Zeitstempel, Benutzername oder Session-ID filtern.

Verlauf abrufen

# 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.

Live streamen

# Öffne einen WebSocket

const ws = new WebSocket(

"wss://.../stream?displays=0"

)

# bei Nachricht

ws.onmessage = (e) => {

const msg = JSON.parse(e.data)

// msg.type === 'notification'

}

[ type: "notification", data: [ id, summary, urgency, timestamp ] ] pushed on every new notification.

Kit / Benachrichtigungen / usecases
Anwendungsfälle

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.

kit / notifications / api
API REFERENCE

8 Endpoints. Ein Benachrichtigungsserver.

Auslösen, abrufen, streamen und verwerfen von Desktop-Benachrichtigungen — plus Icons und Überwachung — alles über einfaches HTTP.

Auslösen

{count, plural, =1 {# Endpoint} other {# Endpoints}'}

POST .../api/v1/notifications/notify → {"success":true}

POST
/api/v1/notifications/notifySende eine native Desktop-Benachrichtigung an ein Ziel-Display über notify-send

Abrufen & Streamen

{count, plural, =1 {# Endpoint} other {# Endpoints}'}

GET .../api/v1/notifications/{display}?limit=50&since=...

GET
/api/v1/notifications/{display}Rufe den Benachrichtigungsverlauf für ein oder mehrere Displays ab
WS
/api/v1/notifications/stream?displays=0,:1WebSocket-Echtzeit-Stream — Push-Updates wenn Benachrichtigungen ankommen
POST
/api/v1/notifications/dismissMarkiere Benachrichtigungs-IDs als verworfen; herausgefiltert aus nachfolgenden GET-Antworten
DELETE
/api/v1/notifications/dismissLösche Verworfener-Status — stelle Benachrichtigungen wieder sichtbar

Icons

{count, plural, =1 {# Endpoint} other {# Endpoints}'}

GET .../api/v1/notifications/icons/{iconId} → image/png

GET
/api/v1/notifications/icons/{iconId}Hole Benachrichtigungssymbol (JPEG, PNG oder SVG) nach eindeutiger Icon-ID

Gesundheit & Metriken

{count, plural, =1 {# Endpoint} other {# Endpoints}'}

GET .../api/v1/notifications/health → {"status":"UP"}

GET
/api/v1/notifications/healthErweiterte Statusüberprüfung — Dateisystem, WebSocket und Speicherstatus
GET
/api/v1/notifications/metricsPrometheus-kompatible Metriken für gesendete, fehlgeschlagene und CPU/Memory-Benachrichtigungen
Kit / Benachrichtigungen / CTA

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.

Docs lesen