diff options
Diffstat (limited to 'server/initializers')
-rw-r--r-- | server/initializers/checker.js | 46 | ||||
-rw-r--r-- | server/initializers/constants.js | 42 | ||||
-rw-r--r-- | server/initializers/database.js | 29 |
3 files changed, 117 insertions, 0 deletions
diff --git a/server/initializers/checker.js b/server/initializers/checker.js new file mode 100644 index 000000000..ec7bc0ad2 --- /dev/null +++ b/server/initializers/checker.js | |||
@@ -0,0 +1,46 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | var config = require('config') | ||
4 | var mkdirp = require('mkdirp') | ||
5 | var path = require('path') | ||
6 | |||
7 | var checker = { | ||
8 | checkConfig: checkConfig, | ||
9 | createDirectoriesIfNotExist: createDirectoriesIfNotExist | ||
10 | } | ||
11 | |||
12 | // Check the config files | ||
13 | function checkConfig () { | ||
14 | var required = [ 'listen.port', | ||
15 | 'webserver.https', 'webserver.host', 'webserver.port', | ||
16 | 'database.host', 'database.port', 'database.suffix', | ||
17 | 'storage.certs', 'storage.uploads', 'storage.logs', | ||
18 | 'network.friends' ] | ||
19 | var miss = [] | ||
20 | |||
21 | for (var key of required) { | ||
22 | if (!config.has(key)) { | ||
23 | miss.push(key) | ||
24 | } | ||
25 | } | ||
26 | |||
27 | return miss | ||
28 | } | ||
29 | |||
30 | // Create directories for the storage if it doesn't exist | ||
31 | function createDirectoriesIfNotExist () { | ||
32 | var storages = config.get('storage') | ||
33 | |||
34 | for (var key of Object.keys(storages)) { | ||
35 | var dir = storages[key] | ||
36 | try { | ||
37 | mkdirp.sync(path.join(__dirname, '..', dir)) | ||
38 | } catch (error) { | ||
39 | throw new Error('Cannot create ' + path + ':' + error) | ||
40 | } | ||
41 | } | ||
42 | } | ||
43 | |||
44 | // --------------------------------------------------------------------------- | ||
45 | |||
46 | module.exports = checker | ||
diff --git a/server/initializers/constants.js b/server/initializers/constants.js new file mode 100644 index 000000000..16e50443b --- /dev/null +++ b/server/initializers/constants.js | |||
@@ -0,0 +1,42 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | // API version of our pod | ||
4 | var API_VERSION = 'v1' | ||
5 | |||
6 | // Score a pod has when we create it as a friend | ||
7 | var FRIEND_BASE_SCORE = 100 | ||
8 | |||
9 | // Time to wait between requests to the friends | ||
10 | var INTERVAL = 60000 | ||
11 | |||
12 | // Number of points we add/remove from a friend after a successful/bad request | ||
13 | var PODS_SCORE = { | ||
14 | MALUS: -10, | ||
15 | BONUS: 10 | ||
16 | } | ||
17 | |||
18 | // Number of retries we make for the make retry requests (to friends...) | ||
19 | var REQUEST_RETRIES = 10 | ||
20 | |||
21 | // Special constants for a test instance | ||
22 | if (isTestInstance() === true) { | ||
23 | FRIEND_BASE_SCORE = 20 | ||
24 | INTERVAL = 10000 | ||
25 | REQUEST_RETRIES = 2 | ||
26 | } | ||
27 | |||
28 | // --------------------------------------------------------------------------- | ||
29 | |||
30 | module.exports = { | ||
31 | API_VERSION: API_VERSION, | ||
32 | FRIEND_BASE_SCORE: FRIEND_BASE_SCORE, | ||
33 | INTERVAL: INTERVAL, | ||
34 | PODS_SCORE: PODS_SCORE, | ||
35 | REQUEST_RETRIES: REQUEST_RETRIES | ||
36 | } | ||
37 | |||
38 | // --------------------------------------------------------------------------- | ||
39 | |||
40 | function isTestInstance () { | ||
41 | return (process.env.NODE_ENV === 'test') | ||
42 | } | ||
diff --git a/server/initializers/database.js b/server/initializers/database.js new file mode 100644 index 000000000..a917442ec --- /dev/null +++ b/server/initializers/database.js | |||
@@ -0,0 +1,29 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | var config = require('config') | ||
4 | var mongoose = require('mongoose') | ||
5 | |||
6 | var logger = require('../helpers/logger') | ||
7 | |||
8 | var dbname = 'peertube' + config.get('database.suffix') | ||
9 | var host = config.get('database.host') | ||
10 | var port = config.get('database.port') | ||
11 | |||
12 | var database = { | ||
13 | connect: connect | ||
14 | } | ||
15 | |||
16 | function connect () { | ||
17 | mongoose.connect('mongodb://' + host + ':' + port + '/' + dbname) | ||
18 | mongoose.connection.on('error', function () { | ||
19 | throw new Error('Mongodb connection error.') | ||
20 | }) | ||
21 | |||
22 | mongoose.connection.on('open', function () { | ||
23 | logger.info('Connected to mongodb.') | ||
24 | }) | ||
25 | } | ||
26 | |||
27 | // --------------------------------------------------------------------------- | ||
28 | |||
29 | module.exports = database | ||