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}] `);