const express = require('express'); const path = require('path'); // Initialize database require('./db'); const app = express(); const PORT = process.env.PORT || 3000; // Middleware app.use(express.json({ limit: '50mb' })); app.use(express.static(path.join(__dirname, '..', 'public'))); // API Routes app.use('/api/sources', require('./routes/sources')); app.use('/api/proxy', require('./routes/proxy')); app.use('/api/channels', require('./routes/channels')); app.use('/api/favorites', require('./routes/favorites')); // SPA fallback - serve index.html for all non-API routes app.get('*', (req, res) => { res.sendFile(path.join(__dirname, '..', 'public', 'index.html')); }); // Error handling app.use((err, req, res, next) => { console.error('Server error:', err); res.status(500).json({ error: 'Internal server error' }); }); app.listen(PORT, () => { console.log(`NodeCast TV server running on http://localhost:${PORT}`); });