1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2024-12-29 15:11:58 +00:00

refactor!: port env (#9559)

refactor: port env
This commit is contained in:
Jason Rasmussen 2024-05-17 12:59:05 -04:00 committed by GitHub
parent c03981ac1d
commit d61418886f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 13 additions and 20 deletions

View file

@ -59,13 +59,10 @@ It only need to be set if the Immich deployment method is changing.
## Ports ## Ports
| Variable | Description | Default | Services | | Variable | Description | Default |
| :---------------------- | :-------------------- | :-------: | :-------------------- | | :------------ | :------------- | :------------------------------------: |
| `HOST` | Host | `0.0.0.0` | server, microservices | | `IMMICH_HOST` | Listening host | `0.0.0.0` |
| `SERVER_PORT` | Server Port | `3001` | server | | `IMMICH_PORT` | Listening port | 3001 (server), 3003 (machine learning) |
| `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 ## Database

View file

@ -17,7 +17,7 @@ const setup = async () => {
child.stdout.on('data', (data) => { child.stdout.on('data', (data) => {
const input = data.toString(); const input = data.toString();
console.log(input); console.log(input);
if (input.includes('Immich Microservices is listening')) { if (input.includes('Immich Microservices is running')) {
_resolve(); _resolve();
} }
}); });

View file

@ -2,20 +2,20 @@
lib_path="/usr/lib/$(arch)-linux-gnu/libmimalloc.so.2" lib_path="/usr/lib/$(arch)-linux-gnu/libmimalloc.so.2"
# mimalloc seems to increase memory usage dramatically with openvino, need to investigate # mimalloc seems to increase memory usage dramatically with openvino, need to investigate
if ! [ "$DEVICE" = "openvino" ]; then if ! [ "$DEVICE" = "openvino" ]; then
export LD_PRELOAD="$lib_path" export LD_PRELOAD="$lib_path"
export LD_BIND_NOW=1 export LD_BIND_NOW=1
fi fi
: "${MACHINE_LEARNING_HOST:=[::]}" : "${IMMICH_HOST:=[::]}"
: "${MACHINE_LEARNING_PORT:=3003}" : "${IMMICH_PORT:=3003}"
: "${MACHINE_LEARNING_WORKERS:=1}" : "${MACHINE_LEARNING_WORKERS:=1}"
: "${MACHINE_LEARNING_WORKER_TIMEOUT:=120}" : "${MACHINE_LEARNING_WORKER_TIMEOUT:=120}"
gunicorn app.main:app \ gunicorn app.main:app \
-k app.config.CustomUvicornWorker \ -k app.config.CustomUvicornWorker \
-b "$IMMICH_HOST":"$IMMICH_PORT" \
-w "$MACHINE_LEARNING_WORKERS" \ -w "$MACHINE_LEARNING_WORKERS" \
-b "$MACHINE_LEARNING_HOST":"$MACHINE_LEARNING_PORT" \
-t "$MACHINE_LEARNING_WORKER_TIMEOUT" \ -t "$MACHINE_LEARNING_WORKER_TIMEOUT" \
--log-config-json log_conf.json \ --log-config-json log_conf.json \
--graceful-timeout 0 --graceful-timeout 0

View file

@ -372,8 +372,7 @@ export const immichAppConfig: ConfigModuleOptions = {
DB_VECTOR_EXTENSION: Joi.string().optional().valid('pgvector', 'pgvecto.rs').default('pgvecto.rs'), DB_VECTOR_EXTENSION: Joi.string().optional().valid('pgvector', 'pgvecto.rs').default('pgvecto.rs'),
DB_SKIP_MIGRATIONS: Joi.boolean().optional().default(false), DB_SKIP_MIGRATIONS: Joi.boolean().optional().default(false),
MACHINE_LEARNING_PORT: Joi.number().optional(), IMMICH_PORT: Joi.number().optional(),
MICROSERVICES_PORT: Joi.number().optional(),
IMMICH_METRICS_PORT: Joi.number().optional(), IMMICH_METRICS_PORT: Joi.number().optional(),
IMMICH_METRICS: Joi.boolean().optional().default(false), IMMICH_METRICS: Joi.boolean().optional().default(false),

View file

@ -18,7 +18,7 @@ const host = process.env.HOST;
async function bootstrap() { async function bootstrap() {
otelSDK.start(); otelSDK.start();
const port = Number(process.env.SERVER_PORT) || 3001; const port = Number(process.env.IMMICH_PORT) || 3001;
const app = await NestFactory.create<NestExpressApplication>(ApiModule, { bufferLogs: true }); const app = await NestFactory.create<NestExpressApplication>(ApiModule, { bufferLogs: true });
const logger = await app.resolve(ILoggerRepository); const logger = await app.resolve(ILoggerRepository);

View file

@ -6,12 +6,9 @@ import { ILoggerRepository } from 'src/interfaces/logger.interface';
import { WebSocketAdapter } from 'src/middleware/websocket.adapter'; import { WebSocketAdapter } from 'src/middleware/websocket.adapter';
import { otelSDK } from 'src/utils/instrumentation'; import { otelSDK } from 'src/utils/instrumentation';
const host = process.env.HOST;
export async function bootstrap() { export async function bootstrap() {
otelSDK.start(); otelSDK.start();
const port = Number(process.env.MICROSERVICES_PORT) || 3002;
const app = await NestFactory.create(MicroservicesModule, { bufferLogs: true }); const app = await NestFactory.create(MicroservicesModule, { bufferLogs: true });
const logger = await app.resolve(ILoggerRepository); const logger = await app.resolve(ILoggerRepository);
logger.setAppName('ImmichMicroservices'); logger.setAppName('ImmichMicroservices');
@ -19,9 +16,9 @@ export async function bootstrap() {
app.useLogger(logger); app.useLogger(logger);
app.useWebSocketAdapter(new WebSocketAdapter(app)); app.useWebSocketAdapter(new WebSocketAdapter(app));
await (host ? app.listen(port, host) : app.listen(port)); await app.listen(0);
logger.log(`Immich Microservices is listening on ${await app.getUrl()} [v${serverVersion}] [${envName}] `); logger.log(`Immich Microservices is running [v${serverVersion}] [${envName}] `);
} }
if (!isMainThread) { if (!isMainThread) {