Files
NetBird-UptimeKuma/index.js
La Programmatrice Verde 6ac8a7d096 Prova aggiunta pipeline CI/CD
2025-12-29 23:46:06 +01:00

50 lines
1.5 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
- Aggiungere un timer modificato dall'esterno (opzionale, default 1 giorno) che decida per quanto tenere un log prima di cancellarlo
- Quando un log viene cancellato copiare il token corrente nel log
- All'uscita del programma far stampare l'ultimo token in uso
- Usare i log con docker logs
- Aggiornare Node e il metodo di build
*/