radio-edge-node
This repository contains the containerized supervisor and OP25 instance for the SDR nodes. It manages the local RF workload and synchronizes state with the central C2 via MQTT.
- Directory Structure
radio-edge-node/ ├── app/ │ ├── main.py # Entry point & MQTT Startup │ ├── routers/ # FastAPI Routes (op25_controller.py) │ ├── internal/ # Business Logic (config_utils, logger, etc.) │ └── models/ # Pydantic Schemas ├── configs/ # Persistent Volume for active.cfg.json ├── Dockerfile ├── docker-entrypoint.sh └── docker-compose.yml
- Supervisor Logic
The supervisor performs three main tasks:
MQTT Phone-Home: On startup, it sends the Check-In packet to the C2.
Process Management: It wraps the OP25 multi_rx process. If the process dies, the supervisor can report the failure via MQTT.
Metadata Tailing: (Planned) Tailing the OP25 stderr/stdout to extract real-time talkgroup grants for the C2 metadata bus.
- Deployment
Set your .env variables (NODE_ID, MQTT_BROKER, etc.)
docker-compose up --build -d