38 lines
1.2 KiB
TypeScript
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',
|
|
},
|
|
};
|