import { config } from 'dotenv'; import { hostname } from 'os'; import { resolve } from 'path'; // Prefer systemd/cron-set DOTENV_CONFIG_PATH; otherwise cwd .env (default dotenv behavior). config({ path: process.env.DOTENV_CONFIG_PATH || resolve(process.cwd(), '.env') }); const generateInstanceId = () => { return process.env.INSTANCE_ID || hostname() || `kord-${Math.random().toString(36).substring(2, 7)}`; }; export const env = { NODE_ENV: process.env.NODE_ENV || 'development', DISCORD_TOKEN: process.env.DISCORD_TOKEN || '', DISCORD_CLIENT_ID: process.env.DISCORD_CLIENT_ID || '', DATABASE_URL: process.env.DATABASE_URL || '', VOICE_WAITING_ROOM_ID: process.env.VOICE_WAITING_ROOM_ID || '', VOICE_CATEGORY_ID: process.env.VOICE_CATEGORY_ID || '', /** log4js level: trace | debug | info | warn | error | fatal */ LOG_LEVEL: process.env.LOG_LEVEL || 'info', /** * Directory for log4js `kord.log` (created at startup). Relative paths resolve from `process.cwd()`. * For Jenkins or wipe-and-redeploy flows, set an absolute path **outside** the deploy tree (e.g. `/var/lib/kord/logs`) * so logs survive redeploys and match `StandardOutput=append` in systemd if you point it at the same file. */ LOG_DIR: process.env.LOG_DIR || 'logs', INSTANCE_ID: generateInstanceId(), };