Aggiornato README con dettagli sull'agente e architettura
This commit is contained in:
@@ -7,44 +7,72 @@
|
||||
<a name="english"></a>
|
||||
## 🇬🇧 English
|
||||
|
||||
**Fleet Control Console** is a modern, real-time command and control (C2) dashboard designed for amateur radio repeater networks (MMDVM). It allows administrators and operators to monitor, manage, and configure remote digital voice nodes entirely through a responsive web interface.
|
||||
**Fleet Control Console** is a professional, real-time command and control (C2) dashboard designed for amateur radio repeater networks (MMDVM). It allows administrators to monitor and manage a "fleet" of remote digital voice nodes (DMR, NXDN, YSF, P25) through a single, elegant web interface.
|
||||
|
||||

|
||||
|
||||
### 🏗️ System Architecture
|
||||
The ecosystem consists of three main parts:
|
||||
1. **The Central Dashboard (`app.py`):** A Flask web server that handles the UI, user permissions (SQLite), and logic.
|
||||
2. **The Remote Agent (`system_monitor.py`):** A lightweight script running on each repeater (Raspberry Pi/Linux) that monitors hardware and executes commands.
|
||||
3. **The MQTT Broker:** The communication backbone. All data and commands flow through MQTT for near-instant responsiveness.
|
||||
|
||||
### ✨ Features
|
||||
* **Real-Time Telemetry:** Monitor CPU, RAM, Temperature, and Disk usage of remote nodes.
|
||||
* **Live Transit Log:** Watch MMDVM transits in real-time (DMR, NXDN, YSF, P25).
|
||||
* **Remote Service Control:** Start, Stop, or Restart remote daemons directly from the browser.
|
||||
* **Live INI Editor:** Edit configuration files of remote nodes without SSH.
|
||||
* **Modern UI:** Glassmorphism design with automatic Dark/Light mode.
|
||||
* **Centralized Telemetry:** Real-time CPU, RAM, Temperature, and Disk usage for all nodes.
|
||||
* **Service Management:** Start, Stop, or Restart system daemons (MMDVMHost, DMRGateway, etc.) remotely.
|
||||
* **Remote Configuration:** Built-in web editor for `.ini` files—no SSH required.
|
||||
* **Live Transit Log:** Unified view of radio traffic across the entire network.
|
||||
* **Profile Switching:** Toggle between different repeater setups (e.g., Profile A/B) with one click.
|
||||
|
||||
### 🚀 Installation & Setup
|
||||
1. Clone the repository.
|
||||
2. Install requirements: `pip install flask paho-mqtt psutil werkzeug`
|
||||
3. Rename `config.example.json` to `config.json` and configure your MQTT broker.
|
||||
4. Run the server: `python3 app.py`
|
||||
|
||||
#### 1. Server Setup (Central Hub)
|
||||
* Install dependencies: `pip install flask paho-mqtt psutil werkzeug`
|
||||
* Configure `config.json` (use `config.example.json` as template) with your MQTT credentials.
|
||||
* Define your repeaters in `clients.json`.
|
||||
* Run: `python3 app.py`
|
||||
|
||||
#### 2. Agent Setup (Remote Nodes)
|
||||
The `system_monitor.py` must be installed on every node you wish to monitor.
|
||||
* Place `system_monitor.py` and `monitor_config.ini` in a folder (e.g., `/opt/node_agent/`).
|
||||
* Edit `monitor_config.ini` to set the `NodeID` (must match the ID in `clients.json`) and MQTT credentials.
|
||||
* (Recommended) Set up a systemd service to run the agent automatically at boot.
|
||||
|
||||
---
|
||||
|
||||
<a name="italiano"></a>
|
||||
## 🇮🇹 Italiano
|
||||
|
||||
**Fleet Control Console** è una dashboard di comando e controllo (C2) in tempo reale, progettata per le reti di ripetitori radioamatoriali (MMDVM). Permette ad amministratori e operatori di monitorare e gestire i nodi digitali remoti interamente da un'interfaccia web responsiva.
|
||||
**Fleet Control Console** è una dashboard di comando e controllo (C2) professionale in tempo reale, progettata per le reti di ripetitori radioamatoriali (MMDVM). Permette ai gestori di monitorare e gestire un'intera "flotta" di nodi digitali (DMR, NXDN, YSF, P25) da un'unica interfaccia web raffinata.
|
||||
|
||||

|
||||
|
||||
### 🏗️ Architettura del Sistema
|
||||
L'ecosistema si compone di tre parti principali:
|
||||
1. **Dashboard Centrale (`app.py`):** Un server web Flask che gestisce l'interfaccia, i permessi utenti (SQLite) e la logica di controllo.
|
||||
2. **Agente Remoto (`system_monitor.py`):** Uno script leggero in esecuzione su ogni ripetitore (Raspberry Pi/Linux) che raccoglie i dati hardware ed esegue i comandi.
|
||||
3. **Broker MQTT:** Il centro nevralgico della comunicazione. Tutti i dati e i comandi viaggiano su MQTT per una reattività istantanea.
|
||||
|
||||
### ✨ Funzionalità
|
||||
* **Telemetria in Tempo Reale:** Monitoraggio di CPU, RAM, Temperatura e Disco.
|
||||
* **Log Transiti Live:** Visualizzazione dei transiti MMDVM in tempo reale.
|
||||
* **Controllo Servizi Remoto:** Avvia, Ferma o Riavvia i demoni remoti direttamente dal browser.
|
||||
* **Editor INI Live:** Modifica i file di configurazione senza usare SSH.
|
||||
* **Interfaccia Moderna:** Design "Glassmorphism" con modalità Chiara/Scura automatica.
|
||||
* **Telemetria Centralizzata:** Stato in tempo reale di CPU, RAM, Temperatura e Disco di tutti i nodi.
|
||||
* **Gestione Servizi:** Avvio, arresto o riavvio dei demoni di sistema (MMDVMHost, DMRGateway, ecc.) da remoto.
|
||||
* **Configurazione Remota:** Editor web integrato per i file `.ini`: modifica i parametri senza accedere in SSH.
|
||||
* **Log Transiti Live:** Vista unificata del traffico radio di tutta la rete.
|
||||
* **Cambio Profilo:** Commuta tra diversi assetti del ripetitore (es. Profilo A/B) con un clic.
|
||||
|
||||
### 🚀 Installazione e Configurazione
|
||||
1. Clona il repository.
|
||||
2. Installa le dipendenze: `pip install flask paho-mqtt psutil werkzeug`
|
||||
3. Rinomina `config.example.json` in `config.json` e configura il tuo broker MQTT.
|
||||
4. Avvia il server: `python3 app.py`
|
||||
|
||||
#### 1. Setup del Server (Hub Centrale)
|
||||
* Installa le dipendenze: `pip install flask paho-mqtt psutil werkzeug`
|
||||
* Configura `config.json` (usa `config.example.json` come base) con le credenziali MQTT.
|
||||
* Definisci i tuoi ripetitori nel file `clients.json`.
|
||||
* Avvia: `python3 app.py`
|
||||
|
||||
#### 2. Setup dell'Agente (Nodi Remoti)
|
||||
Il file `system_monitor.py` va installato su ogni nodo che vuoi monitorare.
|
||||
* Copia `system_monitor.py` e `monitor_config.ini` in una cartella (es. `/opt/node_agent/`).
|
||||
* Modifica `monitor_config.ini` impostando il `NodeID` (deve corrispondere all'ID in `clients.json`) e le credenziali MQTT.
|
||||
* (Consigliato) Crea un servizio systemd per avviare l'agente automaticamente al boot.
|
||||
|
||||
---
|
||||
*Created by IV3JDV @ ARIFVG - 2026*
|
||||
|
||||
Reference in New Issue
Block a user