Files
immich/server/src/interfaces/config.interface.ts

100 lines
2.0 KiB
TypeScript
Raw Normal View History

import { RegisterQueueOptions } from '@nestjs/bullmq';
import { QueueOptions } from 'bullmq';
import { RedisOptions } from 'ioredis';
import { OpenTelemetryModuleOptions } from 'nestjs-otel/lib/interfaces';
2024-10-03 15:28:36 -04:00
import { ImmichEnvironment, ImmichWorker, LogLevel } from 'src/enum';
import { VectorExtension } from 'src/interfaces/database.interface';
export const IConfigRepository = 'IConfigRepository';
export interface EnvData {
host?: string;
2024-10-03 13:29:40 -04:00
port: number;
environment: ImmichEnvironment;
configFile?: string;
logLevel?: LogLevel;
buildMetadata: {
build?: string;
buildUrl?: string;
buildImage?: string;
buildImageUrl?: string;
repository?: string;
repositoryUrl?: string;
sourceRef?: string;
sourceCommit?: string;
sourceUrl?: string;
thirdPartySourceUrl?: string;
thirdPartyBugFeatureUrl?: string;
thirdPartyDocumentationUrl?: string;
thirdPartySupportUrl?: string;
};
bull: {
config: QueueOptions;
queues: RegisterQueueOptions[];
};
database: {
2024-10-03 17:48:40 -04:00
url?: string;
host: string;
port: number;
username: string;
password: string;
name: string;
skipMigrations: boolean;
vectorExtension: VectorExtension;
};
licensePublicKey: {
client: string;
server: string;
};
network: {
trustedProxies: string[];
};
otel: OpenTelemetryModuleOptions;
resourcePaths: {
lockFile: string;
geodata: {
dateFile: string;
admin1: string;
admin2: string;
cities500: string;
naturalEarthCountriesPath: string;
};
web: {
root: string;
indexHtml: string;
};
};
redis: RedisOptions;
telemetry: {
apiPort: number;
microservicesPort: number;
enabled: boolean;
apiMetrics: boolean;
hostMetrics: boolean;
repoMetrics: boolean;
jobMetrics: boolean;
};
storage: {
ignoreMountCheckErrors: boolean;
};
2024-10-03 15:28:36 -04:00
workers: ImmichWorker[];
noColor: boolean;
nodeVersion?: string;
}
export interface IConfigRepository {
getEnv(): EnvData;
}