diff --git a/keyserver/src/keyserver.js b/keyserver/src/keyserver.js --- a/keyserver/src/keyserver.js +++ b/keyserver/src/keyserver.js @@ -47,6 +47,7 @@ import { initENSCache } from './utils/ens-cache.js'; import { initFCCache } from './utils/fc-cache.js'; import { getContentSigningKey } from './utils/olm-utils.js'; +import { getRunServerConfig } from './utils/server-utils.js'; import { prefetchAllURLFacts, getKeyserverURLFacts, @@ -179,7 +180,9 @@ // requests and prevent webAppRouter and landingRouter from working // correctly. So we make sure that keyserverRouter goes last - if (landingBaseRoutePath) { + const runServerConfig = await getRunServerConfig(); + + if (landingBaseRoutePath && runServerConfig.runLanding) { const landingRouter = express.Router<$Request, $Response>(); landingRouter.get('/invite/:secret', inviteResponder); landingRouter.use( @@ -205,7 +208,7 @@ server.use(landingBaseRoutePath, landingRouter); } - if (webAppBaseRoutePath) { + if (webAppBaseRoutePath && runServerConfig.runWebApp) { const webAppRouter = express.Router<$Request, $Response>(); webAppRouter.use('/images', express.static('images')); webAppRouter.use('/fonts', express.static('fonts')); @@ -247,7 +250,7 @@ server.use(webAppBaseRoutePath, webAppRouter); } - if (keyserverBaseRoutePath) { + if (keyserverBaseRoutePath && runServerConfig.runKeyserver) { const keyserverRouter = express.Router<$Request, $Response>(); if (areEndpointMetricsEnabled) { keyserverRouter.use(logEndpointMetrics); diff --git a/keyserver/src/utils/server-utils.js b/keyserver/src/utils/server-utils.js new file mode 100644 --- /dev/null +++ b/keyserver/src/utils/server-utils.js @@ -0,0 +1,25 @@ +// @flow + +import { getCommConfig } from 'lib/utils/comm-config.js'; + +export type RunServerConfig = { + +runKeyserver?: boolean, + +runWebApp?: boolean, + +runLanding?: boolean, +}; + +async function getRunServerConfig(): Promise { + const config = await getCommConfig({ + folder: 'facts', + name: 'run_server_config', + }); + + // By default, runs if config option not included + return { + runKeyserver: config?.runKeyserver ?? true, + runWebApp: config?.runWebApp ?? true, + runLanding: config?.runLanding ?? true, + }; +} + +export { getRunServerConfig };