refactor(server): telemetry ports env (#13560)

This commit is contained in:
Jason Rasmussen
2024-10-17 17:00:22 -04:00
committed by GitHub
parent 0eabb3ef80
commit c8f672f494
6 changed files with 80 additions and 18 deletions

View File

@@ -9,6 +9,9 @@ const resetEnv = () => {
for (const env of [
'IMMICH_WORKERS_INCLUDE',
'IMMICH_WORKERS_EXCLUDE',
'IMMICH_TRUSTED_PROXIES',
'IMMICH_API_METRICS_PORT',
'IMMICH_MICROSERVICES_METRICS_PORT',
'DB_URL',
'DB_HOSTNAME',
@@ -178,4 +181,41 @@ describe('getEnv', () => {
expect(getEnv).toThrowError('Invalid worker(s) found: api,microservices,randomservice');
});
});
describe('network', () => {
it('should return default network options', () => {
const { network } = getEnv();
expect(network).toEqual({
trustedProxies: [],
});
});
it('should parse trusted proxies', () => {
process.env.IMMICH_TRUSTED_PROXIES = '10.1.0.0,10.2.0.0, 169.254.0.0/16';
const { network } = getEnv();
expect(network).toEqual({
trustedProxies: ['10.1.0.0', '10.2.0.0', '169.254.0.0/16'],
});
});
});
describe('telemetry', () => {
it('should return default ports', () => {
const { telemetry } = getEnv();
expect(telemetry).toEqual({
apiPort: 8081,
microservicesPort: 8082,
});
});
it('should parse custom ports', () => {
process.env.IMMICH_API_METRICS_PORT = '2001';
process.env.IMMICH_MICROSERVICES_METRICS_PORT = '2002';
const { telemetry } = getEnv();
expect(telemetry).toEqual({
apiPort: 2001,
microservicesPort: 2002,
});
});
});
});

View File

@@ -117,6 +117,13 @@ const getEnv = (): EnvData => {
licensePublicKey: isProd ? productionKeys : stagingKeys,
network: {
trustedProxies: (process.env.IMMICH_TRUSTED_PROXIES ?? '')
.split(',')
.map((value) => value.trim())
.filter(Boolean),
},
redis: redisConfig,
resourcePaths: {
@@ -138,6 +145,11 @@ const getEnv = (): EnvData => {
ignoreMountCheckErrors: process.env.IMMICH_IGNORE_MOUNT_CHECK_ERRORS === 'true',
},
telemetry: {
apiPort: Number(process.env.IMMICH_API_METRICS_PORT || '') || 8081,
microservicesPort: Number(process.env.IMMICH_MICROSERVICES_METRICS_PORT || '') || 8082,
},
workers,
noColor: !!process.env.NO_COLOR,