76 lines
1.6 KiB
Markdown
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
|
|
|