Brutale-api / src /server.js
rohanshaw's picture
Upload 16 files
e557560 verified
// src/server.js
require('dotenv').config();
const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const helmet = require('helmet');
const morgan = require('morgan'); // Logger
// Import Routes
const authRoutes = require('./routes/auth.routes');
const { optionalAuth } = require('./middlewares/auth.middleware');
const reviewRoutes = require('./routes/review.routes');
const mediaRoutes = require('./routes/media.routes');
const app = express();
const PORT = process.env.PORT || 7860; // HF Spaces defaults to 7860
// 1. Middlewares (Brutale Security Stack)
app.use(express.json());
app.use(cors()); // Allow all for now, restrict to brutale.fun in production
app.use(helmet()); // Secure HTTP headers
app.use(morgan('tiny')); // Minimal logging
// 2. Database Connection
mongoose.connect(process.env.MONGO_URI)
.then(() => console.log('⚑ Brutale DB Connected'))
.catch(err => console.error('❌ DB Error:', err));
// 3. Health Check (Crucial for UptimeRobot)
app.get('/ping', (req, res) => res.status(200).send('PONG'));
// 4. API Routes
app.use('/api/v1/auth', authRoutes);
app.use('/api/v1/movies', mediaRoutes);
app.use('/api/v1/reviews', optionalAuth, reviewRoutes);
app.listen(PORT, () => {
console.log(`πŸš€ Brutale Server running on port ${PORT}`);
});