An agent, a script or a device posts an event with a token in one HTTP request; every registered device receives it in real time, and peer servers forward events between nodes.
# an event from cron, an agent or a device
curl -X POST "https://unmessagelite.qublo.org/api/v1/send?channel=alerts" \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: text/plain" \
--data "Disk is 92% full"
# the same with a severity and a title
curl -X POST https://unmessagelite.qublo.org/api/v1/events \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channel":"alerts","severity":"warn","title":"Disk","body":"92%"}'A token and the ability to make an HTTP request: cron, a script, an agent or a device. No libraries, no build.
A device registers once, then holds a WebSocket and receives the channel's events immediately; that channel cannot send — it is receive-only.
They forward events between nodes, so a message arrives even when the recipient is attached to a neighbouring node.
It is the small edition: one binary and the fewest parts for a modest installation.
A token, one HTTP request — and the event is on every device.
Un agente, un script o un dispositivo publica un evento con un token en una sola petición HTTP; todos los dispositivos registrados lo reciben al instante y los servidores vecinos reenvían los eventos entre nodos.
# un evento desde cron, un agente o un dispositivo
curl -X POST "https://unmessagelite.qublo.org/api/v1/send?channel=alerts" \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: text/plain" \
--data "El disco está al 92%"
# lo mismo con severidad y título
curl -X POST https://unmessagelite.qublo.org/api/v1/events \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channel":"alerts","severity":"warn","title":"Disco","body":"92%"}'Un token y poder hacer una petición HTTP: cron, un script, un agente o un dispositivo. Sin bibliotecas ni compilación.
El dispositivo se registra una vez, luego mantiene un WebSocket y recibe los eventos del canal al instante; por ese canal no se envía: es solo de recepción.
Reenvían eventos entre nodos, así el mensaje llega aunque el destinatario esté conectado a un nodo vecino.
Es la versión mínima: un binario y las piezas justas para una instalación pequeña.
Un token, una petición HTTP y el evento está en todos los dispositivos.
Агент, скрипт или устройство отправляет событие с токеном одним HTTP-запросом; все зарегистрированные устройства получают его немедленно, а серверы-соседи пересылают события между узлами.
# событие от cron, агента или устройства
curl -X POST "https://unmessagelite.qublo.org/api/v1/send?channel=alerts" \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: text/plain" \
--data "Диск заполнен на 92%"
# то же с уровнем и заголовком
curl -X POST https://unmessagelite.qublo.org/api/v1/events \
-H "Authorization: Bearer $AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channel":"alerts","severity":"warn","title":"Диск","body":"92%"}'Только токен и возможность сделать HTTP-запрос: cron, скрипт, агент или устройство. Ни библиотек, ни сборки.
Устройство регистрируется один раз, дальше держит WebSocket и получает события канала немедленно; отправка через этот канал невозможна — он только на приём.
Они пересылают события между узлами: сообщение доходит и тогда, когда получатель подключён к соседнему узлу.
Лёгкое издание: один бинарник и минимум частей для небольшой установки.
Токен, один HTTP-запрос — и событие на всех устройствах.