⚡ Funded by the Human Rights Foundation — Bitcoin Development Fund

Alerts don't stop at the edge of the network.

OpenAlert is a decentralized alerting gateway that translates critical events between traditional IT infrastructure and edge networks — Nostr and the BitChat Bluetooth mesh — without relying on a central server to keep running.

openalertd · routing panel 3 inbound protocols → 3 outbound destinations
REST inbound webhook NOSTR relay pool BITCHAT BLE mesh openalertd ALERTMANAGER GRAFANA / PAGERDUTY PY-PHONE-CALLER GSM voice / SMS call
01

Core architecture

OpenAlert works as a multi-protocol gateway that abstracts the transport layer of notifications, letting messages flow between traditional IT infrastructure APIs and decentralized edge networks.

Universal downstream compatibility

Formats outbound payloads using the standard Prometheus Alertmanager JSON schema. That lets it trigger py-phone-caller directly, or integrate with Grafana, PagerDuty, or any internal dashboard that already speaks that language.

Standalone by design

The core daemon openalertd runs entirely on its own as a protocol translator — run it in the cloud or on a local mesh, no telephony hardware or nearby modem required.


02

Supported protocols

OpenAlert listens and broadcasts simultaneously across three transport layers. Each one flows in and out of the same central hub.

IT infrastructure

REST

Listens for incoming JSON payloads via standard webhooks, compatible with the monitoring systems you already have running.

In: JSON webhook  ·  Out: signed Nostr event
Decentralized network

Nostr

Monitors the network via a persistent WebSocket connection to a configured relay pool, and cryptographically signs every alert it broadcasts.

In: relay event  ·  Out: Alertmanager webhook
Local mesh

BitChat

Peer-to-peer architecture over a Bluetooth Low Energy mesh. Delivers alerts even when standard TCP/IP routing fails completely, encrypted end-to-end with the Noise Protocol Framework.

In: BLE mesh packet  ·  Out: Alertmanager webhook
$ openalertd --watch
[rest] incoming payload from local watchdog ······ ok
[nostr] event received from relay.damus.io ··········· signed
[bitchat] BLE mesh packet decoded ············ Noise ok
→ translating to Alertmanager schema · sending to configured destination

03

Deployment use cases

Two typical ways to put OpenAlert to work, depending on which side of the network you need to cover.

A

Universal protocol translator

Ingests Nostr or BitChat events and converts them into standard Alertmanager webhooks to trigger your existing incident response stack — or converts local REST alerts into Nostr broadcast events to reach further.

B

Off-grid telephony bridge

Catches offline BitChat mesh packets or Nostr events, securely decrypts the recipient, and routes the payload to py-phone-caller to dial a real voice or SMS call through a physical GSM modem.