import { createServer } from "node:http"; import os from "node:os"; import createApp from "./app.js"; import { startDatamartSync } from "./datamart/datamartSync.controller.js"; import { createLogger } from "./logger/logger.controller.js"; import { monitorReleaseChanges } from "./opendock/utils/releaseMonitor.utils.js"; import { connectProdSql } from "./prodSql/prodSqlConnection.controller.js"; import { setupSocketIORoutes } from "./socket.io/serverSetup.js"; const port = Number(process.env.PORT) || 3000; const start = async () => { const log = createLogger({ module: "system", subModule: "main start" }); // triggering long lived processes connectProdSql(); startDatamartSync(); // TODO: Remove this and all the other data related to it as we dont want this idea anymore // start long live processes setTimeout(() => { monitorReleaseChanges(); // this is od monitoring the db for all new releases }, 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();