sawa-control-panel/backend/index.js

35 lines
1 KiB
JavaScript

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}`);
});