X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=server.js;h=b8674b0b52c80b6e30a7cac8722818ee2ca131c1;hb=dac0a5319ab1c52a0958647b1593f85339b77e29;hp=3f68fff1857f32bd30bc3f25801b8fb75b9dfda3;hpb=e85782f7da44267e11714a63567feb7e0127126e;p=oweals%2Fpeertube.git diff --git a/server.js b/server.js index 3f68fff18..b8674b0b5 100644 --- a/server.js +++ b/server.js @@ -1,23 +1,21 @@ ;(function () { 'use strict' - // ----------- Constantes ----------- - global.API_VERSION = 'v1' - // ----------- Node modules ----------- + var bodyParser = require('body-parser') var express = require('express') var expressValidator = require('express-validator') - var path = require('path') + var http = require('http') var morgan = require('morgan') - var bodyParser = require('body-parser') - var multer = require('multer') + var path = require('path') var TrackerServer = require('bittorrent-tracker').Server var WebSocketServer = require('ws').Server + + // Create our main app var app = express() - var http = require('http') // ----------- Checker ----------- - var checker = require('./src/checker') + var checker = require('./initializers/checker') var miss = checker.checkConfig() if (miss.length !== 0) { @@ -26,27 +24,40 @@ process.exit(0) } - checker.createDirectories() + checker.createDirectoriesIfNotExist() // ----------- PeerTube modules ----------- var config = require('config') - var logger = require('./src/logger') - var routes = require('./routes') - var utils = require('./src/utils') - var videos = require('./src/videos') - var webtorrent = require('./src/webTorrentNode') - + var constants = require('./initializers/constants') + var customValidators = require('./helpers/customValidators') + var database = require('./initializers/database') + var logger = require('./helpers/logger') + var peertubeCrypto = require('./helpers/peertubeCrypto') + var poolRequests = require('./lib/poolRequests') + var routes = require('./controllers') + var utils = require('./helpers/utils') + var videos = require('./lib/videos') + var webtorrent = require('./lib/webTorrentNode') + + // Get configurations var port = config.get('listen.port') - var uploads = config.get('storage.uploads') + + // ----------- Database ----------- + database.connect() // ----------- Command line ----------- // ----------- App ----------- + + // For the logger app.use(morgan('combined', { stream: logger.stream })) + // For body requests app.use(bodyParser.json()) - app.use(multer({ dest: uploads })) app.use(bodyParser.urlencoded({ extended: false })) - app.use(expressValidator()) + // Validate some params for the API + app.use(expressValidator({ + customValidators: customValidators + })) // ----------- Views, routes and static files ----------- @@ -55,16 +66,18 @@ port: 35729 })) + // Catch sefaults require('segfault-handler').registerHandler() + // Static files app.use(express.static(path.join(__dirname, '/public'), { maxAge: 0 })) // Jade template from ./views directory app.set('views', path.join(__dirname, '/views')) app.set('view engine', 'jade') - // API - var api_route = '/api/' + global.API_VERSION + // API routes + var api_route = '/api/' + constants.API_VERSION app.use(api_route, routes.api) // Views routes @@ -105,7 +118,7 @@ // Prod : no stacktraces leaked to user if (process.env.NODE_ENV === 'production') { app.use(function (err, req, res, next) { - logger.error('Error : ' + err.message, { error: err }) + logger.error(err) res.status(err.status || 500) res.render('error', { message: err.message, @@ -114,7 +127,7 @@ }) } else { app.use(function (err, req, res, next) { - logger.error('Error : ' + err.message, { error: err }) + logger.error(err) res.status(err.status || 500) res.render('error', { message: err.message, @@ -124,7 +137,7 @@ } // ----------- Create the certificates if they don't already exist ----------- - utils.createCertsIfNotExist(function (err) { + peertubeCrypto.createCertsIfNotExist(function (err) { if (err) throw err // Create/activate the webtorrent module webtorrent.create(function () { @@ -142,7 +155,10 @@ // ----------- Make the server listening ----------- server.listen(port, function () { - videos.seedAll(function () { + // Activate the pool requests + poolRequests.activate() + + videos.seedAllExisting(function () { logger.info('Seeded all the videos') logger.info('Server listening on port %d', port) app.emit('ready')