// Custom Next.js server with daily-report cron auto-start const { createServer } = require("http"); const { parse } = require("url"); const next = require("next"); const dev = process.env.NODE_ENV !== "production"; const hostname = "0.0.0.0"; const port = parseInt(process.env.PORT || "3000", 10); const app = next({ dev, hostname, port }); const handle = app.getRequestHandler(); app.prepare().then(async () => { // Start daily report cron before accepting requests try { const { startDailyReportCron } = require("./src/lib/daily-report-cron"); startDailyReportCron(); console.log("[server] Daily report cron started"); } catch (e) { console.warn("[server] Failed to start daily report cron:", e.message); } createServer(async (req, res) => { try { const parsedUrl = parse(req.url, true); await handle(req, res, parsedUrl); } catch (err) { console.error("Error occurred handling", req.url, err); res.statusCode = 500; res.end("internal server error"); } }).once("error", (err) => { console.error(err); process.exit(1); }).listen(port, () => { console.log(`> Ready on http://${hostname}:${port}`); }); });