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