NetBird-Uptime Kuma
Questo programma serve per esporre localmente lo stato dei peer registrati su NetBird, senza bisogno di usare token di accesso, in modo che non sia necessario aggiornare il token di accesso regolarmente.
Il programma espone i dati in maniera non criptata e del tutto insicura, ma l'unica cosa che espone sono gli ID dei peer e se sono connessi alla rete mesh.
Di default partirà sulla porta 3000.
È possibile specificare una lista di hostname passandoli alla variabile d'ambiente HOSTNAMES, o una lista di ID passandoli alla variabile d'ambiente HOSTIDS.
Le due variabili non possono essere usate nello stesso momento.
Per inserire più di un peer nelle variabili d'ambiente, separarli con un ;. Non inserire spazi o altri caratteri, solo i nomi/ID dei peer e ; sono accettati.
Se vengono specificati degli hostname o degli ID non validi insieme a degli hostname o degli ID validi, quelli non validi saranno ignorati.
Se nessuna delle due variabili vengono specificate, il programma monitorerà tutti i peer registrati.
Il file di log è disponibile nella cartella di esecuzione in ./log/NetBird-UptimeKuma.log. La sua dimensione massima di default è 10MB, ma può essere modificata da un numero nella variabile d'ambiente MAX_LOG_SIZE.
Il programma restituisce come codice di errore:
1 se non viene inserito nessun token
2 se viene inserito un token non valido
3 se il server avvisa che è stato fornito un token non valido
Attualmente sono fornite immagini precompilate per le architettura arm64 e amd64, ma è possibile compilare il progetto su qualsiasi architettura sia supportata dal container di Node.js
Per iniziare ad usare il programma:
1- Recarsi su https://app.netbird.io/team/users
2- Selezionare l'utente che si desidera sia responsabile del monitoraggio (deve avere privilegi elevati per poter manipolare i token)
3- Creare un token d'accesso con nome "Uptime Kuma" e durata arbitraria
4- Inserire il token nella variabile d'ambiente BASE_TOKEN
5- Avviare il programma con Docker
Docker
Docker run:
docker run -p 3000:3000 -e BASE_TOKEN=<token> -e HOSTNAMES="<hostname1>;<hostname2>" -v /var/log/NetBird-UptimeKuma:/app/log gitea.laprogrammatriceverde.crabdance.com/verde/netbird-uptimekuma:latest
Docker Compose di esempio:
---
services:
netbird-uptimekuma:
image: gitea.laprogrammatriceverde.crabdance.com/verde/netbird-uptimekuma:latest
ports:
- 3000:3000
environment:
BASE_TOKEN: "<token>"
HOSTNAMES: "<hostname1>;<hostname2>"
volumes:
- /var/log/NetBird-UptimeKuma:/app/log