2026-04-11 21:33:04 +08:00
|
|
|
import { resolve } from 'path'
|
2026-04-26 13:28:08 +08:00
|
|
|
import { homedir } from 'os'
|
2026-04-11 21:33:04 +08:00
|
|
|
|
2026-05-08 15:47:03 +08:00
|
|
|
export function getListenHost(env: Record<string, string | undefined> = process.env): string {
|
2026-05-06 02:24:34 -05:00
|
|
|
const host = env.BIND_HOST?.trim()
|
2026-05-08 15:47:03 +08:00
|
|
|
return host || '0.0.0.0'
|
2026-05-06 02:24:34 -05:00
|
|
|
}
|
|
|
|
|
|
2026-04-11 21:33:04 +08:00
|
|
|
export const config = {
|
|
|
|
|
port: parseInt(process.env.PORT || '8648', 10),
|
2026-05-08 15:47:03 +08:00
|
|
|
// Default to IPv4 for stable WSL/Windows browser access. Use BIND_HOST=:: explicitly for IPv6.
|
2026-05-06 02:24:34 -05:00
|
|
|
host: getListenHost(),
|
2026-04-26 13:28:08 +08:00
|
|
|
uploadDir: process.env.UPLOAD_DIR || resolve(homedir(), '.hermes-web-ui', 'upload'),
|
2026-04-11 21:33:04 +08:00
|
|
|
dataDir: resolve(__dirname, '..', 'data'),
|
|
|
|
|
corsOrigins: process.env.CORS_ORIGINS || '*',
|
2026-04-29 16:26:24 +08:00
|
|
|
/** Session store: 'local' (self-built SQLite) or 'remote' (Hermes CLI) */
|
|
|
|
|
sessionStore: (process.env.SESSION_STORE || 'local') as 'local' | 'remote',
|
2026-04-11 21:33:04 +08:00
|
|
|
}
|