Files
NetBird-UptimeKuma/index.js
La Programmatrice Verde 69f90e7a34
All checks were successful
Compila e pubblica sul registro integrato / Build-Docker-Image (push) Successful in 8m22s
Dimensione massima log
2026-01-04 15:35:25 +01:00

48 lines
1.4 KiB
JavaScript

const { Monitoring } = require("./hosts.js");
const { TokenRenew } = require("./tokens.js");
const { Log } = require("./logs.js");
const EventEmitter = require("node:events");
const shared = require("./shared.js");
const express = require("express");
const app = express();
const port = 3000;
const eventEmitter = new EventEmitter();
shared.eventEmitter = eventEmitter;
let baseToken = process.env.BASE_TOKEN;
shared.setToken(baseToken);
globalThis.minute = 1000 * 60;
globalThis.hour = minute * 60;
globalThis.day = hour * 24;
app.listen(port, () => {
Log(`[${shared.now()}] Il server è online sulla porta ${port}`);
});
if ("BASE_TOKEN" in process.env) {
Log(`[${shared.now()}] Token inserito: ${baseToken}`);
if (/^nbp_[a-z0-9A-Z]{36}$/.test(baseToken)) {
Monitoring();
TokenRenew();
} else {
Log(`[${shared.now()}] Il token inserito non è valido.`);
process.exit(2);
}
} else {
Log(`[${shared.now()}] Nessun token inserito.`);
process.exit(1);
}
app.get("/", (_, res) => {
res.json(shared.getHosts());
});
/*
TODO:
- Fare in modo che la durata del timer di rinnovo sia dinamica e dipenda dalla durata rimasta del token inserito
- Fare in modo che con CTRL+C il programma effettivamente esca (in docker)
- Aggiungere un timer modificato dall'esterno (opzionale, default 1 giorno) che decida per quanto tenere un log prima di cancellarlo
- All'uscita del programma far stampare l'ultimo token in uso
- Usare i log con docker logs
*/