import debug from 'debug'; import packageJson from '@@/package.json'; export const RELEASE = 'v' + packageJson.version; export const SERVER_DEBUG = debug('Server'); export const OLD_ENV = { /** @deprecated Only for migration purposes */ PASSWORD: process.env.PASSWORD, /** @deprecated Only for migration purposes */ PASSWORD_HASH: process.env.PASSWORD_HASH, }; export const WG_ENV = { /** UI is hosted on HTTP instead of HTTPS */ INSECURE: process.env.INSECURE === 'true', /** Port the UI is listening on */ PORT: assertEnv('PORT'), /** If IPv6 should be disabled */ DISABLE_IPV6: process.env.DISABLE_IPV6 === 'true', }; export const WG_INITIAL_ENV = { ENABLED: process.env.INIT_ENABLED === 'true', USERNAME: process.env.INIT_USERNAME, PASSWORD: process.env.INIT_PASSWORD, DNS: process.env.INIT_DNS?.split(',').map((x) => x.trim()), IPV4_CIDR: process.env.INIT_IPV4_CIDR, IPV6_CIDR: process.env.INIT_IPV6_CIDR, HOST: process.env.INIT_HOST, PORT: process.env.INIT_PORT ? Number.parseInt(process.env.INIT_PORT, 10) : undefined, }; function assertEnv(env: T) { const val = process.env[env]; if (!val) { throw new Error(`Missing environment variable: ${env}`); } return val; }