// server.js - Main backend server require('dotenv').config({ quiet: true }); const express = require('express'); const chalk = require('chalk').default; const auth = require('./middleware/auth'); const logApi = require('./middleware/logApi'); const cors = require('cors'); const http = require('http'); const containersRouter = require('./routes/containers'); const imagesRouter = require('./routes/images'); const systemRouter = require('./routes/system'); const setupWebSocket = require('./ws/statsSocket'); // Debug mode flag const DEBUG_MODE = process.argv.includes('--debug'); global.DEBUG_MODE = DEBUG_MODE; const app = express(); const server = http.createServer(app); app.use(cors()); app.use(express.json()); // Setup WebSocket for real-time stats setupWebSocket(server); // Log all API requests if debug mode is enabled app.use('/api', logApi); // Protect all /api routes with API key auth app.use('/api', auth); app.use('/api/containers', containersRouter); app.use('/api/images', imagesRouter); app.use('/api/system', systemRouter); const PORT = process.env.PORT || 6560; server.listen(PORT, () => { console.log(chalk.green.bold('Bitstream server running on port'), chalk.cyan.bold(PORT)); if (DEBUG_MODE) { console.log(chalk.yellow.bold('[DEBUG MODE ENABLED] All API requests will be logged.')); } }); module.exports = app;