drop.chapril.org-firefoxsend/server/config.js

105 lines
2.1 KiB
JavaScript
Raw Normal View History

const convict = require('convict');
const { tmpdir } = require('os');
const path = require('path');
const { randomBytes } = require('crypto');
2017-06-09 19:44:12 +02:00
const conf = convict({
2018-08-09 23:49:52 +02:00
s3_bucket: {
format: String,
default: '',
env: 'S3_BUCKET'
2018-08-08 20:07:09 +02:00
},
2018-08-09 23:49:52 +02:00
num_of_prefixes: {
2018-08-08 20:07:09 +02:00
format: Number,
2018-08-09 23:49:52 +02:00
default: 5,
env: 'NUM_OF_PREFIXES'
},
expire_prefixes: {
format: Array,
default: ['5minutes', '1hour', '1day', '1week', '2weeks'],
env: 'EXPIRE_PREFIXES'
2018-08-08 20:07:09 +02:00
},
expire_times_seconds: {
format: Array,
2018-08-09 23:49:52 +02:00
default: [300, 3600, 86400, 604800, 1209600],
2018-08-08 20:07:09 +02:00
env: 'EXPIRE_TIMES_SECONDS'
},
default_expire_seconds: {
format: Number,
default: 86400,
env: 'DEFAULT_EXPIRE_SECONDS'
},
max_expire_seconds: {
format: Number,
default: 1209600,
env: 'MAX_EXPIRE_SECONDS'
2017-06-07 08:52:56 +02:00
},
redis_host: {
format: String,
default: 'localhost',
env: 'REDIS_HOST'
2017-06-07 08:52:56 +02:00
},
redis_event_expire: {
format: Boolean,
default: false,
env: 'REDIS_EVENT_EXPIRE'
},
listen_address: {
2018-01-24 19:23:13 +01:00
format: 'ipaddress',
default: '0.0.0.0',
env: 'IP_ADDRESS'
},
2017-06-07 08:52:56 +02:00
listen_port: {
format: 'port',
default: 1443,
arg: 'port',
env: 'PORT'
},
analytics_id: {
format: String,
2017-06-24 05:01:32 +02:00
default: '',
env: 'GOOGLE_ANALYTICS_ID'
},
2017-06-22 23:50:57 +02:00
sentry_id: {
format: String,
2017-06-24 05:01:32 +02:00
default: '',
env: 'SENTRY_CLIENT'
2017-06-23 19:53:11 +02:00
},
sentry_dsn: {
format: String,
2017-06-24 05:01:32 +02:00
default: '',
env: 'SENTRY_DSN'
2017-06-22 23:50:57 +02:00
},
env: {
2017-06-19 23:34:12 +02:00
format: ['production', 'development', 'test'],
default: 'development',
env: 'NODE_ENV'
2017-07-20 21:50:20 +02:00
},
max_file_size: {
format: Number,
2018-07-27 19:39:23 +02:00
default: 1024 * 1024 * 1024 * 3,
env: 'MAX_FILE_SIZE'
},
l10n_dev: {
format: Boolean,
default: false,
env: 'L10N_DEV'
2017-08-11 23:02:44 +02:00
},
base_url: {
format: 'url',
default: 'https://send.firefox.com',
env: 'BASE_URL'
},
file_dir: {
format: 'String',
default: `${tmpdir()}${path.sep}send-${randomBytes(4).toString('hex')}`,
env: 'FILE_DIR'
}
});
// Perform validation
conf.validate({ allowed: 'strict' });
2017-06-09 19:44:12 +02:00
const props = conf.getProperties();
module.exports = props;