80f5eb3f50c4e6ef5c893abc3b82795f9b61ae18
Some checks failed
Python Application Tests / build (3.13) (pull_request) Failing after 8s
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.
1. 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
2. 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.
3. Deployment
Set your .env variables (NODE_ID, MQTT_BROKER, etc.)
docker-compose up --build -d
Description
Languages
Python
93.4%
Dockerfile
3.8%
Shell
2.8%