Files
ZeroCentral/README.md
2026-01-23 18:42:36 +01:00

76 lines
1.6 KiB
Markdown

# 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=<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