Ir al contenido
Notificaciones de display del contenedor
Streaming por WebSocket
Historial de notificaciones
Niveles de urgencia
Iconos personalizados
Expiración automática
Categorización
POST /notify
Notificaciones de display del contenedor
Streaming por WebSocket
Historial de notificaciones
Niveles de urgencia
Iconos personalizados
Expiración automática
Categorización
POST /notify
Notificaciones de display del contenedor
Streaming por WebSocket
Historial de notificaciones
Niveles de urgencia
Iconos personalizados
Expiración automática
Categorización
POST /notify
Notificaciones de display del contenedor
Streaming por WebSocket
Historial de notificaciones
Niveles de urgencia
Iconos personalizados
Expiración automática
Categorización
POST /notify
NotificationsHoody Notifications

Notificaciones de escritorio vía HTTP.

Envía notificaciones de escritorio Linux a cualquier display de contenedor con una sola HTTP POST. El servidor de notificaciones llama a notify-send en el display X11 de tu contenedor: dispara, consulta el historial o transmite en vivo.

notify · hoody-n

# Enviar una notificación al 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"}'

# Respuesta

{"success":true}

Cómo funciona

Tres pasos. Una llamada HTTP cada uno.

Cada notificación sigue el mismo ciclo de vida: dispárala, consulta el historial o transmítela en vivo, luego descártala cuando hayas terminado.

01

Disparar

POST /notify envía una llamada a notify-send al display X11 de destino. Suministra display, summary y opcionalmente urgency, body, expire_time o icon.

notifications — disparar

# Fire a notification

curl -X POST .../notify

{"display":"0",

"summary":"Build Complete",

"urgency":"normal"}

 

{"success":true}

02

Entregar

notify-send entrega la alerta al daemon de notificaciones del sistema en el display X11 de destino. Aparece en cualquier sesión de display conectada y expira automáticamente según su urgencia y su expire_time.

notifications — entregar

# notify-send on display :0

notify-send → X11 :0

 

▸ Build Complete

normal · auto-expires

02

Consultar o transmitir

GET /[display] recupera el historial de notificaciones con filtros opcionales de limit, since, username y session. Conéctate vía WebSocket a /stream?displays=0 para actualizaciones en tiempo real.

notifications — consultar

# Poll history

curl .../0?limit=50

 

# Or stream live

new WebSocket(

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

)

Niveles de urgencia

baja. normal. crítica.

Tres niveles de urgencia se mapean directamente al comportamiento de notify-send. Elige el correcto y el daemon de notificaciones hace el resto.

low

Se descarta rápidamente. Pon expire_time: 3000 para tareas en segundo plano, telemetría o pings informativos que no deben interrumpir el trabajo.

"urgency": "low",

"expire_time": 3000

normal

Estándar. Por defecto cuando se omite urgency. El daemon de notificaciones la muestra en el timeout configurado y la descarta automáticamente.

"urgency": "normal"

// default — omit to use this

critical

Persistente: requiere descarte manual. Pon expire_time: 0 para fallos del sistema, errores de build o cualquier cosa que necesite acción inmediata.

"urgency": "critical",

"expire_time": 0

Canales

Consulta el historial o transmite en vivo.

Dos canales de lectura para necesidades diferentes: REST para logs de auditoría y consultas puntuales, WebSocket para dashboards y monitores en tiempo real.

GETGET /[display]Consultar
WSWS /streamTransmitir

Obtiene el historial de notificaciones de un display. Filtra por limit, marca de tiempo since, username o session ID. Úsalo para logs de auditoría, consultas puntuales y procesamiento en lote.

consultar historial

# get last 50 for display 0

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

# time-filtered

curl ".../0?since=1749025000000"

Array JSON de objetos de notificación con id, summary, urgency, timestamp y icon_url.

Suscríbete a uno o más displays con displays=0,:1,2 o displays=all. Recibe mensajes push en cuanto llegan. Úsalo para dashboards y monitorización en tiempo real.

transmitir en vivo

# open a 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 ] ] enviado con cada nueva notificación.

Casos de uso

Desde pipelines CI/CD hasta trabajos ML.

En cualquier lugar donde un proceso de larga duración necesite señalar completado o fallo, una HTTP POST es todo lo que se necesita.

Alertas CI/CD

Las builds de larga duración completan. HTTP POST dispara una notificación en el display del contenedor, visible en cualquier sesión de display activa.

Monitorización del sistema

Las alertas del servidor se enrutan a una notificación de escritorio en el display X11 del contenedor, visible en cualquier sesión de display activa.

Tareas de larga duración

Exportaciones de datos, renderizado de vídeo, entrenamiento de modelos ML, finalización de copias de seguridad: notifica cuando termina sin necesidad de sondeo.

Flujos de trabajo automatizados

Los trabajos cron, tareas programadas y scripts de automatización notifican al display del contenedor al completar o fallar.

REFERENCIA DE API

8 endpoints. Un servidor de notificaciones.

Dispara, consulta, transmite y descarta notificaciones de escritorio — más iconos y health checks — todo sobre HTTP plano.

URL base https://abc123-def456-n-1.node-us-1.containers.hoody.com

Disparar

1 endpoint

POST .../api/v1/notifications/notify

POST
/api/v1/notifications/notifyDispara una nueva notificación de escritorio en el display de destino con notify-send

Consultar y transmitir

2 endpoints

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

GET
/api/v1/notifications/{display}Obtén las notificaciones de uno o varios displays indicados
WS
/api/v1/notifications/stream?displays=0,1Stream de notificaciones en tiempo real sobre una conexión WebSocket

Iconos

1 endpoint

GET .../api/v1/notifications/icons/{iconId}

GET
/api/v1/notifications/icons/{iconId}Obtén el icono de una notificación por su icon ID

Health y métricas

1 endpoint

GET .../api/v1/notifications/health

GET
/api/v1/notifications/healthComprobación de estado del servidor de notificaciones

Las notificaciones están a una HTTP POST de distancia.

Cualquier script, servicio o automatización que pueda hacer una solicitud HTTP puede enviar una notificación de escritorio al display de tu contenedor.

Leer la documentación