Spaces:
Sleeping
Sleeping
File size: 1,327 Bytes
e557560 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
// 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}`);
}); |