commit ae19703de96262d0f9853cb0c593c8b66d9a944a Author: truetype Date: Fri Jan 23 18:42:36 2026 +0100 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..f5c0be4 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# 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 +