const express = require('express'); const servicesRouter = require('./routes/services'); const systemRouter = require('./routes/system'); const vhostsRouter = require('./routes/vhosts'); const appsRouter = require('./routes/apps'); const app = express(); app.use(express.json()); // Mount routers under the API version prefix app.use('/api/v1/services', servicesRouter); app.use('/api/v1/system', systemRouter); app.use('/api/v1/vhosts', vhostsRouter); app.use('/api/v1/apps', appsRouter); // Fallback JSON handling for 404 app.use((req, res) => { res.status(404).json({ error: 'Endpoint not found' }); }); // Fallback JSON handling for errors app.use((err, req, res, next) => { console.error(err.stack); res.status(500).json({ error: 'Internal server error' }); }); // Load the configuration from environment mapping const port = process.env.PORT || 3001; // Only bind to localhost for security as per the docs app.listen(port, '127.0.0.1', () => { console.log(`Backend API listening on 127.0.0.1:${port}`); });