Files
adventure/apps/web/src/lib/config/env.ts
Zaine 7251bf305a
Some checks failed
CI / test (push) Has been cancelled
ai with hyper machine
2026-06-26 15:28:47 +01:00

78 lines
1.9 KiB
TypeScript
Executable File

/**
* Centralised environment configuration.
* Preserves existing env variable names and default values.
*/
export const env = {
get nodeEnv(): string {
return process.env.NODE_ENV ?? "development";
},
get isProduction(): boolean {
return env.nodeEnv === "production";
},
get sessionSecret(): string {
return process.env.SESSION_SECRET ?? "complex_password_at_least_32_characters_long";
},
get authPassword(): string {
return process.env.AUTH_PASSWORD ?? "adventure";
},
get cronSecret(): string {
return process.env.CRON_SECRET ?? "change-me-cron-secret";
},
get ollamaUrl(): string {
return process.env.OLLAMA_URL ?? "http://localhost:11434";
},
get ollamaModelFast(): string {
return process.env.OLLAMA_MODEL_FAST ?? "llama3.2:3b";
},
get ollamaModelProse(): string {
return process.env.OLLAMA_MODEL_PROSE ?? process.env.OLLAMA_MODEL_FAST ?? "llama3.2:3b";
},
get hyperOllamaUrl(): string {
return process.env.HYPER_OLLAMA_URL ?? "http://192.168.1.50:11434";
},
get hyperOllamaModelFast(): string {
return process.env.HYPER_OLLAMA_MODEL_FAST ?? "llama3.1:8b";
},
get hyperOllamaModelProse(): string {
return (
process.env.HYPER_OLLAMA_MODEL_PROSE ??
process.env.HYPER_OLLAMA_MODEL_FAST ??
"llama3.1:8b"
);
},
get openAiApiKey(): string | undefined {
return process.env.OPENAI_API_KEY;
},
get llamaCppApiKey(): string | undefined {
return process.env.LLAMACPP_API_KEY;
},
get calibreLibraryPath(): string | undefined {
return process.env.CALIBRE_LIBRARY_PATH;
},
get calibreMetadataDbPath(): string | undefined {
return process.env.CALIBRE_METADATA_DB_PATH;
},
get calibreReadOnly(): boolean {
return process.env.CALIBRE_READ_ONLY !== "false";
},
} as const;
export function getOpenAiCompatibleApiKey(): string | undefined {
return env.openAiApiKey ?? env.llamaCppApiKey;
}