Notifications desktop via HTTP.
Envoie des notifications desktop Linux à n'importe quel display de conteneur avec un seul HTTP POST. Le Notification Server appelle notify-send sur le display X11 de votre conteneur — déclenche, récupère l'historique ou stream en live.
# Envoie une notification au display 0
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"}'
# Réponse
{"success":true}
Trois étapes. Un appel HTTP chacune.
Chaque notification suit le même cycle : déclenchez-la, récupérez l'historique ou streamez-la en live, puis ignorez-la quand c'est fini.
Déclencher
POST /notify envoie un appel notify-send au display X11 cible. Fournis display, summary et optionnellement urgency, body, expire_time ou icon.
# Fire a notification
curl -X POST .../notify
{"display":"0",
"summary":"Build Complete",
"urgency":"normal"}
{"success":true}
Diffuser
notify-send transmet l'alerte au daemon de notification du système sur le display X11 cible. Elle apparaît dans toute session de display connectée et expire automatiquement selon son urgence et son expire_time.
# notify-send on display :0
notify-send → X11 :0
▸ Build Complete
normal · auto-expires
Récupérer ou streamer
GET /[display] récupère l'historique des notifications avec filtres optionnels limit, since, username et session. Connecte-vous via WebSocket à /stream?displays=0 pour recevoir les push temps réel.
# Poll history
curl .../0?limit=50
# Or stream live
new WebSocket(
"wss://.../stream?displays=0"
)
faible. normale. critique.
Trois niveaux d'urgence mappés directement au comportement de notify-send. Choisissez le bon et le daemon de notifications gère le reste.
Disparaît rapidement. Mettez expire_time: 3000 pour les tâches d'arrière-plan, la télémétrie ou les pings informatifs qui ne doivent pas interrompre la concentration.
"urgency": "low",
"expire_time": 3000
Standard. Défaut quand urgency est omis. Le daemon de notifications l'affiche selon le timeout configuré et l'ignore automatiquement.
"urgency": "normal"
// défaut — omets pour utiliser ceci
Persistant — nécessite une action manuelle. Mettez expire_time: 0 pour les pannes système, erreurs de build ou tout ce qui demande une action immédiate.
"urgency": "critical",
"expire_time": 0
Récupérez l'historique ou streamez en live.
Deux canaux de lecture pour des besoins différents : REST pour les logs d'audit et les requêtes ponctuelles, WebSocket pour les dashboards et le monitoring temps réel.
Récupérez l'historique des notifications pour un display. Filtrez par limit, timestamp since, username ou ID de session. À utiliser pour les logs d'audit, requêtes ponctuelles et traitement par batch.
# récupère les 50 dernières pour le display 0
curl ".../0?limit=50"
# filtré par temps
curl ".../0?since=1749025000000"
Tableau JSON d'objets de notifications avec id, summary, urgency, timestamp et icon_url.
Abonnez-vous à un ou plusieurs displays avec displays=0,:1,2 ou displays=all. Recevez les messages push à mesure qu'ils arrivent. À utiliser pour les dashboards et le monitoring temps réel.
# ouvre un WebSocket
const ws = new WebSocket(
"wss://.../stream?displays=0"
)
# on message
ws.onmessage = (e) => {
const msg = JSON.parse(e.data)
// msg.summary, msg.body, msg.urgency
}
[ type: "notification", data: [ id, summary, urgency, timestamp ] ] poussé à chaque nouvelle notification.
Des pipelines de build aux jobs ML.
Partout où un processus long doit signaler une fin ou une panne, un seul HTTP POST suffit.
Alertes CI/CD
Les builds longs se terminent. Un HTTP POST déclenche une notification sur le display du conteneur — visible dans n'importe quelle session display active.
Monitoring système
Les alertes serveur routent vers une notification desktop sur le display X11 du conteneur, visibles dans n'importe quelle session display active.
Tâches longues
Exports de données, rendu vidéo, entraînement de modèles ML, fin de backup — notifie quand c'est fini sans polling.
Workflows automatisés
Cron jobs, tâches planifiées et scripts d'automatisation notifient le display du conteneur à la fin ou en cas de panne.
8 endpoints. Un Notification Server.
Déclenchez, récupérez, streamez et ignorez des notifications desktop — plus icônes et monitoring de santé — le tout en HTTP brut.
URL de base https://abc123-def456-n-1.node-us-1.containers.hoody.com
Déclencher
1 endpointPOST .../api/v1/notifications/notify
Récupérer & streamer
2 endpointsGET .../api/v1/notifications/{display}?limit=50
Icônes
1 endpointGET .../api/v1/notifications/icons/{iconId}
Santé & métriques
1 endpointGET .../api/v1/notifications/health
Les notifications sont à un HTTP POST.
N'importe quel script, service ou automatisation capable de faire une requête HTTP peut envoyer une notification desktop à votre display de container.