70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
const express = require('express'),
|
|
path = require('path'),
|
|
session = require('express-session'),
|
|
bodyParse = require('body-parser'),
|
|
passport = require('./auth/passport'),
|
|
mongoose = require('mongoose'),
|
|
middleware = require('connect-ensure-login'),
|
|
MongoStore = require('connect-mongo');
|
|
config = require('./config/default'),
|
|
flash = require('connect-flash'),
|
|
port = config.server.port,
|
|
app = express(),
|
|
node_media_server = require('./media_server'),
|
|
thumbnail_generator = require('./cron/thumbnails');
|
|
|
|
//mongoose.connect('mongodb://127.0.0.1/nodeStream' , { useNewUrlParser: true });
|
|
|
|
const utils = require('./utils');
|
|
|
|
app.set('view engine', 'ejs');
|
|
app.set('views', path.join(__dirname, './views'));
|
|
app.use(express.static('public'));
|
|
app.use('/thumbnails', express.static('server/thumbnails'));
|
|
app.use(flash());
|
|
|
|
app.use(require('cookie-parser')());
|
|
app.use(bodyParse.urlencoded({extended: true}));
|
|
app.use(bodyParse.json({extended: true}));
|
|
|
|
app.use(session({
|
|
store: MongoStore.create({
|
|
mongoUrl: 'mongodb://127.0.0.1/nodeStream',
|
|
ttl: 14 * 24 * 60 * 60 // = 14 days. Default
|
|
}),
|
|
secret: config.server.secret,
|
|
maxAge : Date().now + (60 * 1000 * 30),
|
|
resave : true,
|
|
saveUninitialized : false,
|
|
}));
|
|
|
|
app.use(passport.initialize());
|
|
app.use(passport.session());
|
|
|
|
// Register app routes
|
|
app.use('/login', require('./routes/login'));
|
|
app.use('/register', require('./routes/register'));
|
|
app.use('/settings', require('./routes/settings'));
|
|
app.use('/streams', require('./routes/streams'));
|
|
app.use('/user', require('./routes/user'));
|
|
|
|
app.get('/logout', (req, res) => {
|
|
req.logout();
|
|
return res.redirect('/login');
|
|
});
|
|
|
|
app.get('*', middleware.ensureLoggedIn(), (req, res) => {
|
|
res.render('index');
|
|
});
|
|
|
|
app.listen(port, () => console.log(`App listening on ${port}!`));
|
|
node_media_server.run();
|
|
// Start thumbnail cron after a short delay to ensure media server APIs are mounted
|
|
setTimeout(() => {
|
|
try {
|
|
thumbnail_generator.start();
|
|
} catch (e) {
|
|
console.log('Failed to start thumbnail generator:', e.message);
|
|
}
|
|
}, 1000);
|