-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.js
56 lines (48 loc) · 1.71 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import dotenv from 'dotenv';
import { readFileSync } from 'fs';
import { resolve } from 'path';
dotenv.config();
export const sslConfig = getSslConfig();
export default {
token: process.env.SECRET_TOKEN || 'secretToken',
protocol: process.env.PROTOCOL || 'http',
host: process.env.HOST || 'localhost',
port: {
http: Number(process.env.HTTP_PORT) || 3000,
ws: Number(process.env.WS_PORT) || 3000,
q2a: Number(process.env.Q2A_PORT) || 80,
},
mailer: {
host: process.env.MAILER_HOST || '',
port: process.env.MAILER_PORT || 587,
secure: process.env.MAILER_SECURE === 'true' || false,
auth: {
user: process.env.MAILER_AUTH_USER || '',
pass: process.env.MAILER_AUTH_PASS || '',
},
tls: {
rejectUnauthorized: process.env.MAILER_TLS_REJECT_UNAUTHORIZED === 'true' || false,
},
},
emailTo: (process.env.EMAIL_TO && process.env.EMAIL_TO.split(',').map((email) => email.trim())) || [''],
};
function getSslConfig() {
const PROTOCOL = process.env.PROTOCOL;
const SSL_KEY_PATH = process.env.SSL_KEY_PATH;
const SSL_CERT_PATH = process.env.SSL_CERT_PATH;
let key = '';
let cert = '';
if (PROTOCOL === 'https') {
const isSslConfigSpecified = SSL_KEY_PATH && SSL_CERT_PATH;
let sslKeyPath = SSL_KEY_PATH;
let sslCertPath = SSL_CERT_PATH;
if (!isSslConfigSpecified) {
console.warn('SSL config not provided. Self signed certificate is used');
sslKeyPath = resolve(__dirname, '../ssl/develop.key');
sslCertPath = resolve(__dirname, '../ssl/develop.cert');
}
key = readFileSync(sslKeyPath, 'utf8');
cert = readFileSync(sslCertPath, 'utf8');
}
return { key, cert };
}