diff --git a/Dockerfile b/Dockerfile index fa087a3b..101af29c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,6 +45,8 @@ COPY --from=builder /src/lib ./ COPY --from=builder /src/public ./public COPY --from=builder /src/assets ./assets +ENV NODE_ENV="production" + VOLUME /data EXPOSE 9993 EXPOSE 7775 diff --git a/changelog.d/904.misc b/changelog.d/904.misc new file mode 100644 index 00000000..30e92ca5 --- /dev/null +++ b/changelog.d/904.misc @@ -0,0 +1 @@ +Switch expressjs to production mode for improved performance. diff --git a/docs/setup.md b/docs/setup.md index 8b930192..caf71662 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -27,7 +27,12 @@ cd matrix-hookshot yarn # or npm i ``` -Starting the bridge (after configuring it), is a matter of running `yarn start`. +Starting the bridge (after configuring it), is a matter of setting the `NODE_ENV` environment variable to `production` or `development`, depending if you want [better performance or more verbose logging](https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production), and then running it: + + +```bash +NODE_ENV=production yarn start +``` ## Installation via Docker diff --git a/src/ListenerService.ts b/src/ListenerService.ts index 32ef379f..62f2168e 100644 --- a/src/ListenerService.ts +++ b/src/ListenerService.ts @@ -30,6 +30,7 @@ export class ListenerService { } for (const listenerConfig of config) { const app = expressApp(); + app.set('x-powered-by', false); app.use(Handlers.requestHandler()); this.listeners.push({ config: listenerConfig,