diff --git a/server/index.js b/server/index.js index 672bf43..bebedda 100644 --- a/server/index.js +++ b/server/index.js @@ -1021,15 +1021,28 @@ async function broadcastMetrics() { } } -// Start services -checkAndFixDatabase(); -latencyService.start(); +// Start server and services +async function start() { + try { + console.log('🔧 Initializing services...'); + // Ensure DB is ready before starting anything else + await checkAndFixDatabase(); + + // Start services + latencyService.start(); -const REFRESH_INT = parseInt(process.env.REFRESH_INTERVAL) || 5000; -setInterval(broadcastMetrics, REFRESH_INT); + const REFRESH_INT = parseInt(process.env.REFRESH_INTERVAL) || 5000; + setInterval(broadcastMetrics, REFRESH_INT); -server.listen(PORT, HOST, () => { - console.log(`\n 🚀 Data Visualization Display Wall (WebSocket Enabled)`); - console.log(` 📊 Server running at http://${HOST === '0.0.0.0' ? 'localhost' : HOST}:${PORT}`); - console.log(` ⚙️ Configure Prometheus sources at http://${HOST === '0.0.0.0' ? 'localhost' : HOST}:${PORT}/settings\n`); -}); + server.listen(PORT, HOST, () => { + console.log(`\n 🚀 Data Visualization Display Wall (WebSocket Enabled)`); + console.log(` 📊 Server running at http://${HOST === '0.0.0.0' ? 'localhost' : HOST}:${PORT}`); + console.log(` ⚙️ Configure Prometheus sources at http://${HOST === '0.0.0.0' ? 'localhost' : HOST}:${PORT}/settings\n`); + }); + } catch (err) { + console.error('❌ Server failed to start:', err.message); + process.exit(1); + } +} + +start();