mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00:00
* build: add typesense to docker * feat(server): typesense search * feat(web): search * fix(web): show api error response message * chore: search tests * chore: regenerate open api * fix: disable typesense on e2e * fix: number properties for open api (dart) * fix: e2e test * fix: change lat/lng from floats to typesense geopoint * dev: Add smartInfo relation to findAssetById to be able to query against it --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
import { ConfigModuleOptions } from '@nestjs/config';
|
|
import Joi from 'joi';
|
|
|
|
const WHEN_DB_URL_SET = Joi.when('DB_URL', {
|
|
is: Joi.exist(),
|
|
then: Joi.string().optional(),
|
|
otherwise: Joi.string().required(),
|
|
});
|
|
|
|
export const immichAppConfig: ConfigModuleOptions = {
|
|
envFilePath: '.env',
|
|
isGlobal: true,
|
|
validationSchema: Joi.object({
|
|
NODE_ENV: Joi.string().required().valid('development', 'production', 'staging').default('development'),
|
|
DB_USERNAME: WHEN_DB_URL_SET,
|
|
DB_PASSWORD: WHEN_DB_URL_SET,
|
|
DB_DATABASE_NAME: WHEN_DB_URL_SET,
|
|
DB_URL: Joi.string().optional(),
|
|
TYPESENSE_API_KEY: Joi.when('TYPESENSE_ENABLED', {
|
|
is: 'false',
|
|
then: Joi.string().optional(),
|
|
otherwise: Joi.string().required(),
|
|
}),
|
|
DISABLE_REVERSE_GEOCODING: Joi.boolean().optional().valid(true, false).default(false),
|
|
REVERSE_GEOCODING_PRECISION: Joi.number().optional().valid(0, 1, 2, 3).default(3),
|
|
LOG_LEVEL: Joi.string().optional().valid('simple', 'verbose', 'debug', 'log', 'warn', 'error').default('log'),
|
|
MACHINE_LEARNING_PORT: Joi.number().optional(),
|
|
MICROSERVICES_PORT: Joi.number().optional(),
|
|
SERVER_PORT: Joi.number().optional(),
|
|
}),
|
|
};
|