Files
lst_v3/backend/server.ts
2026-02-20 16:54:01 -06:00

47 lines
1.6 KiB
TypeScript

import { createServer } from "node:http";
import os from "node:os";
import createApp from "./app.js";
import { dbCleanup } from "./db/dbCleanup.controller.js";
import { createLogger } from "./logger/logger.controller.js";
import { monitorReleaseChanges } from "./opendock/openDockRreleaseMonitor.utils.js";
import { opendockSocketMonitor } from "./opendock/opendockSocketMonitor.utils.js";
import { connectProdSql } from "./prodSql/prodSqlConnection.controller.js";
import { setupSocketIORoutes } from "./socket.io/serverSetup.js";
import { createCronJob } from "./utils/croner.utils.js";
const port = Number(process.env.PORT) || 3000;
const start = async () => {
const log = createLogger({ module: "system", subModule: "main start" });
// triggering long lived processes
connectProdSql();
// start long live processes
setTimeout(() => {
monitorReleaseChanges(); // this is od monitoring the db for all new releases
opendockSocketMonitor();
createCronJob("JobAuditLogCleanUp", "* 0 5 * * * *", () =>
dbCleanup("jobs", 30),
);
createCronJob("logsCleanup", "* 15 5 * * * *", () => dbCleanup("logs", 30));
createCronJob("opendockAptCleanup", "* 30 5 * * * *", () =>
dbCleanup("opendockApt", 90),
);
}, 5 * 1000);
const { app, baseUrl } = await createApp();
const server = createServer(app);
setupSocketIORoutes(baseUrl, server);
server.listen(port, async () => {
log.info(
`Listening on http://${os.hostname()}:${port}${baseUrl}, logging in ${process.env.LOG_LEVEL}, current ENV ${process.env.NODE_ENV ? process.env.NODE_ENV : "development"}`,
);
});
};
start();