An autonomous, zero-dependency emergency alerting gateway compiled in pure Rust. Bridges IT monitoring infrastructure to censorship-resistant decentralized networks, offline Bluetooth LE meshes, Emergency SOS Wi-Fi Captive Portals, and long-range LoRa radios.
OpenAlert operates as a multi-protocol gateway, standardizing incoming digital payloads into Prometheus Alertmanager schema, and securely relaying them across heterogeneous decentralized transports.
REST Watchdogs & Webhooks
Off-Grid Wi-Fi AP & SVG CAPTCHA
NIP-04, NIP-17/44 Gift Wraps
Noise XX Encrypted 1-on-1
SLIP Micro-Datagram Peering
GSM/LTE Modem AT Commands
Rust Autonomous Control Plane
Voice Telephony & GSM Dispatch
Encrypted DMs & Public Broadcast
Public BLE Mesh Escalation
Edge-to-Gateway Forwarding
PagerDuty, Grafana, Alertmanager
Engineered from first principles for mission-critical reliability, air-gapped field kits, and sovereign crisis networks.
/sos) for civilians without BitChat or 0xChat installed. Features an offline 4-digit distorted SVG visual CAPTCHA signed with one-time HMAC-SHA256 nonces. Includes optional Linux hostapd + dnsmasq + nginx Port 80 Captive Portal packaging (OpenAlert-SOS) that pops up automatically on any phone joining the field node's Wi-Fi.
8088. Implements NIP-01/11/20 with SQLite event indexing. Supports NIP-17/59/44 onion gift wraps (ChaCha20-Poly1305) and legacy NIP-04. Features interactive Command & Control (C2) and thread-aware alert acknowledgments (ACK).
Noise_XX_25519_ChaChaPoly_SHA256 handshake, automatically escalating private emergencies with their exact message payload to the public mesh, LoRa RF, and telephony.
/dev/ttyACM*, /dev/ttyUSB*) up Linux sysfs hierarchies to trigger kernel ioctl(USBDEVFS_RESET) hardware power cycles and sysfs unbind/bind resets upon repeated I/O timeouts, auto-recovering hung USB-UART bridges without reboots.
[raw_rssi, raw_snr]) to physical LoRa frames. Calculates quadratic RF degradation penalties (P_rf) to dynamically steer distance-vector routing away from noisy or marginal links, exposing live telemetry via Prometheus gauges and the NOC Status API.
/sos Captive Portal emergencies → 868 MHz LoRa RF → Edge Gateway → WireGuard VPN → Cloud Hub → Asterisk PBX voice calls & SMS in sub-second to 3.8s latency.
https://py-phone-caller.link/openalert through Apache APISIX edge gateway with Keycloak OpenID Connect authentication. Features dynamic response-rewriting for collision-free path isolation and unbuffered Server-Sent Events (SSE) live telemetry streaming with zero backend code changes.
npub/nsec translator, SMS UCS-2 codec, SHA-256 hasher, and 256-bit PSK generator. Includes an in-dashboard TOML config editor with dry-run validation and automatic .bak backups.
py-phone-caller's Python Dynaconf engine powered by Rust's config crate. Multi-tier precedence supports static TOML files, turnkey deployment profiles (edge-sensor, mesh-repeater, central-gateway), and 12-Factor container environment overrides (OPENALERT_<SEC>__<KEY>). Enables pure ephemeral container execution with zero disk mounts.
Compiled with standard Rust tooling. Produces a single static executable with zero shared library or package dependencies.
# 1. Clone the repository git clone https://github.com/jcfdeb/py-phone-caller.git cd py-phone-caller/src/openalert # 2. Run the comprehensive test suite cargo test # 3. Build optimized release binary cargo build --release # 4. Install as systemd service (with optional Wi-Fi SOS Captive Portal on ARM field nodes) sudo ./packaging/install.sh --with-wifi-ap
# Validate configuration syntax and active directories openalertd check-config config/openalertd.toml # Generate a full Nostr Secp256k1 identity (nsec, npub, and ready-to-paste TOML) openalertd generate-keypair # Convert 0xChat mobile npub or nsec into hex (and auto-derive pubkeys) openalertd convert-key npub1uvtjer4wn7y2qpe4clvqd7qz7x483pthpngewqddc03xes39uq3sw9p5u6 # Transcode cellular SMS UCS-2 hex and international text openalertd convert-sms "Critical alert ⚠️" # Generate secure SHA-256 password hash for Web UI or /sos authentication openalertd hash-password "yourTacticalPassword" # Inspect live daemon status, peering links, and persistent spool openalertd status openalertd peers openalertd spool
Pre-configured profiles in config/profiles/ tailored for diverse deployment environments:
| Profile | Target Environment | Active Transports | Security & Auth |
|---|---|---|---|
edge-sensor.toml |
Off-grid remote sensor / SOS node (solar/battery) | LoRa Serial + BitChat BLE + Wi-Fi /sos Captive Portal |
Pre-shared XChaCha20 key + Offline SVG CAPTCHA |
mesh-repeater.toml |
Hilltop tower or tactical vehicle relay | LoRa RF cluster bridged to LAN Ethernet backhaul | Dynamic Distance-Vector routing |
central-gateway.toml |
Operations Center (NOC) / Datacenter | Web UI, Asterisk Telephony, Nostr Quorum, WireGuard | Bearer Token & SHA-256 Basic Auth |
At milestone v0.2.0, openalertd is officially hardened and field-certified. All core protocols, hardware auto-recovery supervisors, RF telemetry algorithms, off-grid Wi-Fi SOS Captive Portals, and enterprise edge gateway integrations are fully tested and locked:
cargo clippy -- -D warnings. Memory-safe, concurrency-safe with tokio and parking_lot.
/sos Portal, Day/Night logo assets, Web Audio synthesizers, and SQLite schemas compiled directly into the executable. Runs seamlessly on bare-metal x86_64 and ARM64 Linux field kits.