/
config.js
41 lines (34 loc) · 1.25 KB
/
config.js
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
40
41
'use strict';
if (!process.env.DATABASE_URL) {
const dotEnvResult = require('dotenv').config();
if (process.env.NODE_ENV !== 'test' && dotEnvResult.error) {
throw new Error('Failed to load config');
}
}
const config = {
db: process.env.DATABASE_URL,
env: process.env.NODE_ENV || 'production',
port: process.env.PORT || 8080,
https: process.env.WEBMENTIONS_HTTPS,
cookieSecret: process.env.WEBMENTIONS_COOKIE_SECRET,
hostname: process.env.WEBMENTIONS_HOSTNAME,
userLimit: process.env.WEBMENTIONS_USER_LIMIT || 6,
throttleSpan: (process.env.WEBMENTIONS_THROTTLE || 60) * 1000,
github: {
client_id: process.env.WEBMENTIONS_GITHUB_ID,
client_secret: process.env.WEBMENTIONS_GITHUB_SECRET
},
dev: {
throttling: process.env.WEBMENTIONS_DEV_THROTTLING,
sigintCleanup: process.env.WEBMENTIONS_DEV_SIGINT_CLEANUP || false
},
version: require('../package.json').version
};
if (config.env === 'test') {
config.db = process.env.DATABASE_TEST_URL || 'postgres://postgres@localhost/webmention_test';
}
if (config.https === undefined) {
config.https = (config.env === 'production');
}
config.userAgent = 'A-WebMention-Endpoint/' + config.version + ' (https://github.com/voxpelli/webpage-webmentions)';
module.exports = config;