SPB Git
1.2 KB · 24 lines typescript
1import path from "node:path";23function req(name: string, fallback?: string): string {4  const v = process.env[name] ?? fallback;5  if (v === undefined || v === "") throw new Error(`Missing required environment variable ${name}`);6  return v;7}89export const env = {10  get DATABASE_URL() { return req("DATABASE_URL"); },11  get DATA_DIR() { return path.resolve(process.env.DATA_DIR ?? "./data"); },12  get UPLOAD_DIR() { return path.join(this.DATA_DIR, "uploads"); },13  get SESSION_SECRET() { return req("SESSION_SECRET"); },14  get OPENAI_API_KEY() { return process.env.OPENAI_API_KEY ?? ""; },15  get ANTHROPIC_API_KEY() { return process.env.ANTHROPIC_API_KEY ?? ""; },16  get TAVILY_API_KEY() { return process.env.TAVILY_API_KEY ?? ""; },17  get PYTHON_BIN() { return process.env.PYTHON_BIN ?? "python3"; },18  get APP_URL() { return process.env.APP_URL ?? "https://chat.spboucher.ai"; },19  get NODE_ENV() { return process.env.NODE_ENV ?? "development"; },20  get SESSION_TTL_DAYS() { return Number(process.env.SESSION_TTL_DAYS ?? 30); },21  get MAX_UPLOAD_MB() { return Number(process.env.MAX_UPLOAD_MB ?? 50); },22  get BENCHMARKS_DIR() { return path.resolve(process.env.BENCHMARKS_DIR ?? "./benchmarks"); },23};24
Files · laptop-build-20261101
Menu

Theme