29 lines
1.3 KiB
TypeScript
29 lines
1.3 KiB
TypeScript
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(),
|
|
};
|