Files
lobe-sandbox-backend/orchestrator/src/env.ts

38 lines
1.2 KiB
TypeScript

const required = (key: string): string => {
const v = process.env[key];
if (!v) throw new Error(`Missing env: ${key}`);
return v;
};
const num = (key: string, def: number): number => {
const v = process.env[key];
return v ? Number.parseInt(v, 10) : def;
};
export const env = {
port: num('PORT', 8700),
host: process.env.HOST ?? '127.0.0.1',
orchSecret: required('SANDBOX_ORCH_SECRET'),
adminToken: process.env.ADMIN_TOKEN ?? '',
incus: {
project: process.env.INCUS_PROJECT ?? 'lobe-sandbox',
profile: process.env.INCUS_PROFILE ?? 'sandbox-default',
baseImage: process.env.INCUS_BASE_IMAGE ?? 'lobe-sandbox-base',
prefix: process.env.INCUS_CONTAINER_PREFIX ?? 'sb-',
},
idleTimeoutMs: num('IDLE_TIMEOUT_MS', 30 * 60 * 1000),
stateDbPath: process.env.STATE_DB_PATH ?? '/var/lib/lobe-sandbox/state.sqlite',
s3: {
endpoint: process.env.S3_ENDPOINT ?? 'http://192.168.2.221:9000',
region: process.env.S3_REGION ?? 'us-east-1',
bucket: process.env.S3_BUCKET ?? 'lobe-sandbox-exports',
accessKeyId: process.env.S3_ACCESS_KEY_ID ?? '',
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY ?? '',
forcePathStyle: process.env.S3_FORCE_PATH_STYLE !== 'false',
},
};