pockethost/packages/daemon/src/constants.ts
2023-09-15 15:11:06 -07:00

108 lines
3.0 KiB
TypeScript

import { existsSync } from 'fs'
import { join } from 'path'
import { env, envb, envi } from './util/env'
export const PUBLIC_APP_PROTOCOL = env('PUBLIC_APP_PROTOCOL', 'https')
export const PUBLIC_APP_DOMAIN = env('PUBLIC_APP_DOMAIN', `pockethost.test`)
export const PUBLIC_APP_DB = env('PUBLIC_APP_DB', `pockethost-central`)
export const DAEMON_PB_USERNAME = (() => {
const v = env('DAEMON_PB_USERNAME')
if (!v) {
throw new Error(`DAEMON_PB_USERNAME environment variable must be specified`)
}
return v
})()
export const DAEMON_PB_PASSWORD = (() => {
const v = env('DAEMON_PB_PASSWORD')
if (!v) {
throw new Error(`DAEMON_PB_PASSWORD environment variable must be specified`)
}
return v
})()
export const DAEMON_PB_PORT_BASE = envi('DAEMON_PB_PORT_BASE', 8090)
export const DAEMON_PB_IDLE_TTL = envi('DAEMON_PB_IDLE_TTL', 5000)
export const DAEMON_PB_MIGRATIONS_DIR = (() => {
const v = env('DAEMON_PB_MIGRATIONS_DIR')
if (!v) {
throw new Error(
`DAEMON_PB_MIGRATIONS_DIR (${v}) environment variable must be specified`,
)
}
if (!existsSync(v)) {
throw new Error(`DAEMON_PB_MIGRATIONS_DIR (${v}) path must exist`)
}
return v
})()
export const DAEMON_PB_DATA_DIR = (() => {
const v = env('DAEMON_PB_DATA_DIR')
if (!v) {
throw new Error(
`DAEMON_PB_DATA_DIR (${v}) environment variable must be specified`,
)
}
if (!existsSync(v)) {
throw new Error(`DAEMON_PB_DATA_DIR (${v}) path must exist`)
}
return v
})()
export const NODE_ENV = env('NODE_ENV', '')
export const DEBUG = envb('DEBUG', NODE_ENV === 'development')
export const TRACE = envb('TRACE', false)
export const DAEMON_MAX_PORTS = envi(`DAEMON_MAX_PORTS`, 500)
export const DAEMON_PB_BACKUP_SLEEP = envi(`DAEMON_PB_BACKUP_SLEEP`, 100)
export const DAEMON_PB_BACKUP_PAGE_COUNT = envi(
`DAEMON_PB_BACKUP_PAGE_COUNT`,
5,
)
export const PH_BIN_CACHE = env(
`PH_BIN_CACHE`,
join(__dirname, `../../../.pbincache`),
)
export const PH_FTP_PORT = envi('PH_FTP_PORT', 21)
export const SSL_KEY = env('SSL_KEY')
export const SSL_CERT = env('SSL_CERT')
export const PH_FTP_PASV_IP = env('PH_FTP_PASV_IP', '0.0.0.0')
export const PH_FTP_PASV_PORT_MIN = envi('PH_FTP_PASV_PORT_MIN', 10000)
export const PH_FTP_PASV_PORT_MAX = envi('PH_FTP_PASV_PORT_MAX', 20000)
export const DENO_PATH = env('DENO_PATH', `deno`)
export const DAEMON_PB_SEMVER = env('DAEMON_PB_SEMVER', '') // This will default always to the max version
export const HOST_OS = env('HOST_OS', 'darwin')
export const DOCKER_ARCH = env('DOCKER_ARCH', 'arm64')
console.log({
PUBLIC_APP_PROTOCOL,
PUBLIC_APP_DOMAIN,
PUBLIC_APP_DB,
DAEMON_PB_USERNAME,
DAEMON_PB_PASSWORD,
DAEMON_PB_MIGRATIONS_DIR,
DAEMON_PB_SEMVER,
DENO_PATH,
PH_FTP_PASV_IP,
PH_FTP_PORT,
PH_FTP_PASV_PORT_MIN,
PH_FTP_PASV_PORT_MAX,
SSL_KEY,
SSL_CERT,
PH_BIN_CACHE,
DAEMON_PB_BACKUP_SLEEP,
DAEMON_PB_BACKUP_PAGE_COUNT,
NODE_ENV,
DEBUG,
TRACE,
DAEMON_PB_PORT_BASE,
DAEMON_PB_IDLE_TTL,
DAEMON_PB_DATA_DIR,
})