first commit
This commit is contained in:
75
README.md
Normal file
75
README.md
Normal file
@@ -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=<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
|
||||
|
||||
Reference in New Issue
Block a user