33 lines
1.1 KiB
Markdown
33 lines
1.1 KiB
Markdown
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 |