123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- const convict = require('convict');
- const { tmpdir } = require('os');
- const path = require('path');
- const { randomBytes } = require('crypto');
- const conf = convict({
- s3_bucket: {
- format: String,
- default: '',
- env: 'S3_BUCKET'
- },
- redis_host: {
- format: String,
- default: 'localhost',
- env: 'REDIS_HOST'
- },
- redis_event_expire: {
- format: Boolean,
- default: false,
- env: 'REDIS_EVENT_EXPIRE'
- },
- listen_address: {
- format: 'ipaddress',
- default: '0.0.0.0',
- env: 'IP_ADDRESS'
- },
- listen_port: {
- format: 'port',
- default: 1443,
- arg: 'port',
- env: 'PORT'
- },
- analytics_id: {
- format: String,
- default: '',
- env: 'GOOGLE_ANALYTICS_ID'
- },
- sentry_id: {
- format: String,
- default: '',
- env: 'SENTRY_CLIENT'
- },
- sentry_dsn: {
- format: String,
- default: '',
- env: 'SENTRY_DSN'
- },
- env: {
- format: ['production', 'development', 'test'],
- default: 'development',
- env: 'NODE_ENV'
- },
- max_file_size: {
- format: Number,
- default: 1024 * 1024 * 1024 * 2,
- env: 'MAX_FILE_SIZE'
- },
- expire_seconds: {
- format: Number,
- default: 86400,
- env: 'EXPIRE_SECONDS'
- },
- l10n_dev: {
- format: Boolean,
- default: false,
- env: 'L10N_DEV'
- },
- 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' });
- const props = conf.getProperties();
- module.exports = props;
|