import debug from 'debug';
import packageJson from '@@/package.json';
export const RELEASE = 'v' + packageJson.version;
export const TOTP_ISSUER = 'PhobosWG';
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 = {
INSECURE: process.env.INSECURE === 'true',
PORT: assertEnv('PORT'),
DISABLE_IPV6: process.env.DISABLE_IPV6 === 'true',
WG_EXECUTABLE: 'wg' as const,
};
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,
ALLOWED_IPS: process.env.INIT_ALLOWED_IPS?.split(',').map((x) => x.trim()),
HOST: process.env.INIT_HOST,
};
function assertEnv<T extends string>(env: T) {
const val = process.env[env];
if (!val) {
throw new Error(`Missing environment variable: ${env}`);
}
return val;
}