Files
server-manager/backend/src/index.ts
Ernie Butcher 36c76edb29
All checks were successful
continuous-integration/drone/push Build is passing
fix: startup order, health endpoint, real metrics, settings warning, chart history
2026-03-18 18:15:39 -04:00

53 lines
1.3 KiB
TypeScript

import express, { Express, Request, Response } from 'express';
import cors from 'cors';
import helmet from 'helmet';
import morgan from 'morgan';
import dotenv from 'dotenv';
import { errorHandler } from './middleware/errorHandler';
import { notFound } from './middleware/notFound';
import apiRoutes from './routes';
import { runMigrations } from './db/migrate';
dotenv.config();
const app: Express = express();
const port = process.env.PORT || 3001;
// Middleware
app.use(helmet());
app.use(cors({
origin: process.env.CORS_ORIGIN || ['http://localhost:5173', 'https://sm.jiosii.com'],
credentials: true
}));
app.use(morgan('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Health check
app.get('/health', (req: Request, res: Response) => {
res.json({
status: 'ok',
timestamp: new Date().toISOString(),
uptime: process.uptime()
});
});
// API Routes
app.use('/api', apiRoutes);
// Error handling
app.use(notFound);
app.use(errorHandler);
async function start() {
await runMigrations();
app.listen(port, () => {
console.log(`⚡️ Server is running on port ${port}`);
console.log(`🌍 Environment: ${process.env.NODE_ENV || 'development'}`);
});
}
start().catch(console.error);
export default app;