From ed74213c63a5dc313a88c8cd7b5192d0758a39ec Mon Sep 17 00:00:00 2001 From: yparitcher Date: Mon, 15 Apr 2024 14:24:13 -0400 Subject: [PATCH] feat(server): server host binding (#8800) * Allow setting the host address for the server & microservices Default to listen on all interfaces as per the current behavior. * (Docs) format: fix lint --- docs/docs/install/environment-variables.md | 13 +++++++------ server/src/main.ts | 6 ++++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/docs/install/environment-variables.md b/docs/docs/install/environment-variables.md index a8cbe6059f..6f768a0af0 100644 --- a/docs/docs/install/environment-variables.md +++ b/docs/docs/install/environment-variables.md @@ -48,12 +48,13 @@ These environment variables are used by the `docker-compose.yml` file and do **N ## Ports -| Variable | Description | Default | Services | -| :---------------------- | :-------------------- | :-------: | :--------------- | -| `SERVER_PORT` | Server Port | `3001` | server | -| `MICROSERVICES_PORT` | Microservices Port | `3002` | microservices | -| `MACHINE_LEARNING_HOST` | Machine Learning Host | `0.0.0.0` | machine learning | -| `MACHINE_LEARNING_PORT` | Machine Learning Port | `3003` | machine learning | +| Variable | Description | Default | Services | +| :---------------------- | :-------------------- | :-------: | :-------------------- | +| `HOST` | Host | `0.0.0.0` | server, microservices | +| `SERVER_PORT` | Server Port | `3001` | server | +| `MICROSERVICES_PORT` | Microservices Port | `3002` | microservices | +| `MACHINE_LEARNING_HOST` | Machine Learning Host | `0.0.0.0` | machine learning | +| `MACHINE_LEARNING_PORT` | Machine Learning Port | `3003` | machine learning | ## Database diff --git a/server/src/main.ts b/server/src/main.ts index 3a93038683..c26010a586 100644 --- a/server/src/main.ts +++ b/server/src/main.ts @@ -16,6 +16,7 @@ import { useSwagger } from 'src/utils/misc'; async function bootstrapMicroservices() { const logger = new ImmichLogger('ImmichMicroservice'); + const host = String(process.env.HOST || '0.0.0.0'); const port = Number(process.env.MICROSERVICES_PORT) || 3002; otelSDK.start(); @@ -23,13 +24,14 @@ async function bootstrapMicroservices() { app.useLogger(app.get(ImmichLogger)); app.useWebSocketAdapter(new WebSocketAdapter(app)); - await app.listen(port); + await app.listen(port, host); logger.log(`Immich Microservices is listening on ${await app.getUrl()} [v${serverVersion}] [${envName}] `); } async function bootstrapApi() { const logger = new ImmichLogger('ImmichServer'); + const host = String(process.env.HOST || '0.0.0.0'); const port = Number(process.env.SERVER_PORT) || 3001; otelSDK.start(); @@ -65,7 +67,7 @@ async function bootstrapApi() { } app.use(app.get(ApiService).ssr(excludePaths)); - const server = await app.listen(port); + const server = await app.listen(port, host); server.requestTimeout = 30 * 60 * 1000; logger.log(`Immich Server is listening on ${await app.getUrl()} [v${serverVersion}] [${envName}] `);