# ZeroCentral Dashboard per monitorare lo stato di tutti i nodi su una rete ZeroTier. **Funzionalità:** - Interroga l'API ZeroTier per ottenere la lista dei nodi - Effettua ping periodico (ogni 10 secondi) a ogni nodo - Mostra dashboard web con: - Hostname del nodo - Indirizzo IP ZeroTier - Stato online/offline (semaforo verde/rosso) - Ultimo time di verifica ## Setup ### 1. Copia il file di configurazione ```bash cp .env.example .env ``` ### 2. Configura il token ZeroTier Modifica `.env` e aggiungi il tuo token ZeroTier: ``` ZEROTIER_TOKEN=tuoTokenQui ``` ### 3. Installa dipendenze ```bash python3 -m venv venv source venv/bin/activate # su Windows: venv\Scripts\activate pip install -r requirements.txt ``` ### 4. Avvia l'app ```bash python3 app.py ``` L'app sarà disponibile su `http://localhost:5000` ## Come usare 1. Accedi a `http://localhost:5000` 2. Inserisci il **Network ID** della rete ZeroTier (16 caratteri) 3. Clicca "Connetti" 4. La dashboard inizierà a monitorare i nodi e aggiornerà lo stato ogni 5 secondi ## API Endpoints - `GET /` - Dashboard web - `GET /api/status` - Health check - `GET /api/nodes?network_id=` - Lista nodi con stato ## Architettura ``` Frontend (HTML/JS/CSS) ↓ Flask REST API ↓ Background Worker (threading) ├→ ZeroTier API Client └→ Ping Service (ogni 10s) ``` ## Files - `app.py` - Applicazione Flask principale - `config.py` - Configurazione - `zerotier_client.py` - Client per API ZeroTier - `ping_service.py` - Servizio di ping periodico - `templates/dashboard.html` - Dashboard web - `static/style.css` - Styling - `static/dashboard.js` - Logica frontend