ZeroCentral

ZeroCentral Banner

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

cp .env.example .env

2. Configura il token ZeroTier

Modifica .env e aggiungi il tuo token ZeroTier:

ZEROTIER_TOKEN=tuoTokenQui

3. Installa dipendenze

python3 -m venv venv
source venv/bin/activate  # su Windows: venv\Scripts\activate
pip install -r requirements.txt

4. Avvia l'app

python3 app.py

L'app sarà disponibile su http://localhost:5000

Come usare

  1. Accedi a http://localhost:5000 ZeroCentral dashboard
  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
Description
Web Dashboard per la mia lan ZeroTier Central
Readme 1.4 MiB
Languages
Python 33.6%
JavaScript 29.1%
CSS 27.1%
HTML 10.2%