|
|
@ -81,9 +81,10 @@ const startMaster = () => { |
|
|
|
log.warn(`Starting streaming API server master with ${numWorkers} workers`); |
|
|
|
}; |
|
|
|
|
|
|
|
const startWorker = async (workerId) => { |
|
|
|
log.warn(`Starting worker ${workerId}`); |
|
|
|
|
|
|
|
/** |
|
|
|
* @return {Object.<string, any>} |
|
|
|
*/ |
|
|
|
const pgConfigFromEnv = () => { |
|
|
|
const pgConfigs = { |
|
|
|
development: { |
|
|
|
user: process.env.DB_USER || pg.defaults.user, |
|
|
@ -102,16 +103,45 @@ const startWorker = async (workerId) => { |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
const app = express(); |
|
|
|
let baseConfig; |
|
|
|
|
|
|
|
app.set('trust proxy', process.env.TRUSTED_PROXY_IP ? process.env.TRUSTED_PROXY_IP.split(/(?:\s*,\s*|\s+)/) : 'loopback,uniquelocal'); |
|
|
|
if (process.env.DATABASE_URL) { |
|
|
|
baseConfig = dbUrlToConfig(process.env.DATABASE_URL); |
|
|
|
} else { |
|
|
|
baseConfig = pgConfigs[env]; |
|
|
|
|
|
|
|
if (process.env.DB_SSLMODE) { |
|
|
|
switch(process.env.DB_SSLMODE) { |
|
|
|
case 'disable': |
|
|
|
case '': |
|
|
|
baseConfig.ssl = false; |
|
|
|
break; |
|
|
|
case 'no-verify': |
|
|
|
baseConfig.ssl = { rejectUnauthorized: false }; |
|
|
|
break; |
|
|
|
default: |
|
|
|
baseConfig.ssl = {}; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const pgPool = new pg.Pool(Object.assign(pgConfigs[env], dbUrlToConfig(process.env.DATABASE_URL), { |
|
|
|
return { |
|
|
|
...baseConfig, |
|
|
|
max: process.env.DB_POOL || 10, |
|
|
|
connectionTimeoutMillis: 15000, |
|
|
|
ssl: !!process.env.DB_SSLMODE && process.env.DB_SSLMODE !== 'disable', |
|
|
|
})); |
|
|
|
application_name: '', |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
const startWorker = async (workerId) => { |
|
|
|
log.warn(`Starting worker ${workerId}`); |
|
|
|
|
|
|
|
const app = express(); |
|
|
|
|
|
|
|
app.set('trust proxy', process.env.TRUSTED_PROXY_IP ? process.env.TRUSTED_PROXY_IP.split(/(?:\s*,\s*|\s+)/) : 'loopback,uniquelocal'); |
|
|
|
|
|
|
|
const pgPool = new pg.Pool(pgConfigFromEnv()); |
|
|
|
const server = http.createServer(app); |
|
|
|
const redisNamespace = process.env.REDIS_NAMESPACE || null; |
|
|
|
|
|
|
|