26 lines
857 B
JavaScript
26 lines
857 B
JavaScript
import { mkdirSync } from 'node:fs';
|
|
import { join, isAbsolute } from 'node:path';
|
|
|
|
const root = process.cwd();
|
|
|
|
function resolveDir(p, fallback) {
|
|
const dir = p || fallback;
|
|
return isAbsolute(dir) ? dir : join(root, dir);
|
|
}
|
|
|
|
export const config = {
|
|
host: process.env.PG_HOST || '0.0.0.0',
|
|
port: Number(process.env.PG_PORT || 3000),
|
|
dataDir: resolveDir(process.env.PG_DATA_DIR, 'data'),
|
|
// Auth: prefer a pre-hashed value; otherwise hash PG_PASSWORD at boot.
|
|
// Defaults to "gunner" for local dev (a warning is logged).
|
|
passwordHash: process.env.PG_PASSWORD_HASH || '',
|
|
password: process.env.PG_PASSWORD || '',
|
|
cookieSecret: process.env.PG_COOKIE_SECRET || '',
|
|
sessionDays: Number(process.env.PG_SESSION_DAYS || 30),
|
|
};
|
|
|
|
mkdirSync(config.dataDir, { recursive: true });
|
|
|
|
export const dbPath = join(config.dataDir, 'premier-gunner.db');
|