Pular para o conteúdo
Notificações no Display do Contêiner
Streaming por WebSocket
Histórico de Notificações
Níveis de Urgência
Ícones Personalizados
Expiração Automática
Categorização
POST /notify
Notificações no Display do Contêiner
Streaming por WebSocket
Histórico de Notificações
Níveis de Urgência
Ícones Personalizados
Expiração Automática
Categorização
POST /notify
Notificações no Display do Contêiner
Streaming por WebSocket
Histórico de Notificações
Níveis de Urgência
Ícones Personalizados
Expiração Automática
Categorização
POST /notify
Notificações no Display do Contêiner
Streaming por WebSocket
Histórico de Notificações
Níveis de Urgência
Ícones Personalizados
Expiração Automática
Categorização
POST /notify
NotificationsHoody Notifications

Notificações de Desktop via HTTP.

Envie notificações de desktop Linux para qualquer display de contêiner com um único HTTP POST. O servidor de notificações chama notify-send no display X11 do seu contêiner — dispare, busque o histórico ou transmita ao vivo.

notify · hoody-n

# Enviar uma notificação para o 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"}'

# Resposta

{"success":true}

Como Funciona

Três Etapas. Uma Chamada HTTP Cada.

Toda notificação segue o mesmo ciclo de vida: dispare, busque o histórico ou transmita ao vivo, depois descarte quando terminar.

01

Disparar

POST /notify envia uma chamada notify-send para o display X11 de destino. Forneça display, summary e opcionalmente urgency, body, expire_time ou icon.

notifications — disparar

# Fire a notification

curl -X POST .../notify

{"display":"0",

"summary":"Build Complete",

"urgency":"normal"}

 

{"success":true}

02

Entregar

O notify-send entrega o alerta ao daemon de notificações do sistema no display X11 de destino. Ele aparece em qualquer sessão de display conectada e expira automaticamente conforme sua urgência e expire_time.

notifications — entregar

# notify-send on display :0

notify-send → X11 :0

 

▸ Build Complete

normal · auto-expires

02

Buscar ou Transmitir

GET /[display] recupera o histórico de notificações com filtros opcionais de limit, since, username e session. Conecte via WebSocket a /stream?displays=0 para atualizações push em tempo real.

notifications — buscar

# Poll history

curl .../0?limit=50

 

# Or stream live

new WebSocket(

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

)

Níveis de Urgência

baixa. normal. crítica.

Três níveis de urgência mapeiam diretamente para o comportamento do notify-send. Escolha o certo e o daemon de notificação cuida do resto.

low

Descarta rapidamente. Defina expire_time: 3000 para tarefas em segundo plano, telemetria ou pings informativos que não devem interromper o foco.

"urgency": "low",

"expire_time": 3000

normal

Padrão. Default quando urgency é omitido. O daemon de notificação exibe no timeout configurado e descarta automaticamente.

"urgency": "normal"

// padrão — omita para usar isso

critical

Persistente — requer descarte manual. Defina expire_time: 0 para falhas de sistema, erros de build ou qualquer coisa que exija ação imediata.

"urgency": "critical",

"expire_time": 0

Canais

Busque o Histórico ou Transmita ao Vivo.

Dois canais de leitura atendem a necessidades diferentes: REST para logs de auditoria e consultas pontuais, WebSocket para dashboards e monitores em tempo real.

GETGET /[display]Buscar
WSWS /streamTransmitir

Consulte o histórico de notificações de um display. Filtre por limit, since timestamp, username ou session ID. Use para logs de auditoria, consultas pontuais e processamento em lote.

buscar histórico

# obter últimos 50 do display 0

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

# tempo-filtrado

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

Array JSON de objetos de notificação com id, summary, urgency, timestamp e icon_url.

Assine um ou mais displays com displays=0,:1,2 ou displays=all. Recebe mensagens push assim que chegam. Use para dashboards e monitoramento em tempo real.

transmissão ao vivo

# abrir um WebSocket

const ws = new WebSocket(

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

)

# na mensagem

ws.onmessage = (e) => {

const msg = JSON.parse(e.data)

// msg.summary, msg.body, msg.urgency

}

[ type: "notification", data: [ id, summary, urgency, timestamp ] ] enviado a cada nova notificação.

Casos de Uso

De Pipelines de Build a Jobs de ML.

Onde quer que um processo de longa duração precise sinalizar conclusão ou falha, um HTTP POST é tudo que é preciso.

Alertas de CI/CD

Builds longos concluídos. HTTP POST dispara uma notificação no display do contêiner — visível em qualquer sessão de display ativa.

Monitoramento de Sistema

Alertas de servidor são roteados para uma notificação de desktop no display X11 do contêiner, visível em qualquer sessão de display ativa.

Tarefas de Longa Duração

Exportações de dados, renderização de vídeo, treinamento de modelos de ML, conclusão de backup — notifique quando terminar sem polling.

Fluxos de Trabalho Automatizados

Jobs cron, tarefas agendadas e scripts de automação notificam o display do contêiner na conclusão ou falha.

REFERÊNCIA DE API

8 Endpoints. Um Servidor de Notificações.

Acione, busque, transmita e rejeite notificações de desktop — mais ícones e monitoramento de saúde — tudo via HTTP simples.

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

Acionar

1 endpoint

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

POST
/api/v1/notifications/notifyDispare uma nova notificação de desktop no display de destino via notify-send

Buscar e Transmitir

2 endpoints

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

GET
/api/v1/notifications/{display}Obtenha as notificações de um ou mais displays especificados
WS
/api/v1/notifications/stream?displays=0,1Stream de notificações em tempo real por uma conexão WebSocket

Ícones

1 endpoint

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

GET
/api/v1/notifications/icons/{iconId}Obtenha o ícone de uma notificação pelo seu icon ID

Saúde e Métricas

1 endpoint

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

GET
/api/v1/notifications/healthHealth check do servidor de notificações

Notificações a Um HTTP POST de Distância.

Qualquer script, serviço ou automação que possa fazer uma requisição HTTP pode enviar uma notificação de desktop para o display do seu contêiner.

Ler a Documentação