70 lines
4.3 KiB
TypeScript
70 lines
4.3 KiB
TypeScript
import { loadEnvFile } from "node:process";
|
|
|
|
try {
|
|
loadEnvFile();
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
|
|
const defaults = {
|
|
REDIS_URL: "", // Optional, for metrics
|
|
DATABASE_URL: "", // Optional, for permanent rooms and VBrowser management
|
|
YOUTUBE_API_KEY: "", // Optional, provide one to enable searching YouTube
|
|
NODE_ENV: "", // Usually, you should let process.env.NODE_ENV override this
|
|
FIREBASE_ADMIN_SDK_CONFIG: "", // Optional, for features requiring sign-in/authentication
|
|
FIREBASE_DATABASE_URL: "", // Optional (unused)
|
|
STRIPE_SECRET_KEY: "", // Optional, for subscriptions
|
|
VBROWSER_SESSION_SECONDS: 10800, // Number of seconds to allow vbrowsers to run for
|
|
VBROWSER_SESSION_SECONDS_LARGE: 86400, // Number of seconds to allow large vbrowsers to run for
|
|
VM_POOL_RAMP_DOWN_HOURS: "", // Comma separated start/end UTC hours of the ramp down period
|
|
VM_POOL_RAMP_UP_HOURS: "", // Comma separated start/end UTC hours of the ramp up period
|
|
VBROWSER_TAG: "", // Optional, tag to put on VBrowser VM instances
|
|
DO_TOKEN: "", // Optional, for DigitalOcean VMs
|
|
DO_GATEWAY: "", // Gateway handling SSL termination
|
|
DO_IMAGE: "", // ID of DigitalOcean snapshot image to use for vbrowser
|
|
DO_SSH_KEYS: "", // IDs of DigitalOcean SSH keys to access vbrowsers
|
|
HETZNER_TOKEN: "", // Optional, for Hetzner VMs
|
|
HETZNER_GATEWAY: "", // Gateway handling SSL termination
|
|
HETZNER_SSH_KEYS: "", // IDs of Hetzner SSH keys to access vbrowsers
|
|
HETZNER_IMAGE: "", // ID of Hetzner snapshot image to use for vbrowser
|
|
VM_MANAGER_CONFIG: "", // Comma-separated list of the pools of VMs to run (provider:size:region:minSize:limitSize:hostname), e.g. Docker:large:US:0:1:localhost,Docker:standard:US:0:1:localhost
|
|
SCW_SECRET_KEY: "", // Optional, for Scaleway VMs
|
|
SCW_ORGANIZATION_ID: "", // Optional, for Scaleway VMs
|
|
SCW_GATEWAY: "", // Gateway handling SSL termination
|
|
SCW_IMAGE: "", // ID of Scaleway snapshot image to use for vbrowser
|
|
DOCKER_VM_HOST: "localhost", // Optional, for Docker VMs
|
|
DOCKER_VM_HOST_SSH_USER: "root", // Optional, username for Docker host
|
|
DOCKER_VM_HOST_SSH_KEY_BASE64: "", // Optional, private SSH key for Docker host, or default to ~/.ssh/id_rsa content
|
|
SSL_KEY_FILE: "", // Optional, Filename of SSL key (to use https)
|
|
SSL_CRT_FILE: "", // Optional, Filename of SSL cert (to use https)
|
|
PORT: 8080, // Port to use for server
|
|
HOST: "0.0.0.0", // Host interface to bind server to
|
|
STATS_KEY: "", // Secret string to validate viewing stats
|
|
BETA_USER_EMAILS: "", // Comma-delimited list of user emails to include in the beta
|
|
CUSTOM_SETTINGS_HOSTNAME: "", // Hostname to send different config settings to client
|
|
STREAM_PATH: "", // Path of server that supports additional video streams
|
|
CONVERT_PATH: "", // Path of server that supports video conversion
|
|
ROOM_CAPACITY: 0, // Maximum capacity of a standard room. Set to 0 for unlimited.
|
|
ROOM_CAPACITY_SUB: 0, // Maximum capacity of a sub room. Set to 0 for unlimited.
|
|
BUILD_DIRECTORY: "build", // Name of the directory where the built React UI is served from
|
|
VM_MIN_UPTIME_MINUTES: 0, // Number of minutes of the hour VMs must exist for before being eligible for termination
|
|
SHARD: undefined, // Shard ID of the web server (configure in ecosystem.config.js)
|
|
FREE_ROOM_LIMIT: 1, // The maximum number of rooms a free user can have
|
|
SUBSCRIBER_ROOM_LIMIT: 20, // The maximum number of rooms a subscriber can have
|
|
VMWORKER_PORT: 3100, // Port to use for the vmWorker HTTP server
|
|
VM_ASSIGNMENT_TIMEOUT: 75, // Number of seconds to wait for a VM before failing
|
|
DISCORD_BOT_TOKEN: "", // Token for the Discord bot that generates WatchParty links
|
|
DISCORD_ADMIN_BOT_TOKEN: "", // Optional, for Discord bot to set subscriber roles
|
|
DISCORD_ADMIN_BOT_SERVER_ID: "708181150220156929", // Optional, ID of the Discord server
|
|
DISCORD_ADMIN_BOT_SUB_ROLE_ID: "722202622345609246", // Optional, ID of subscriber role
|
|
MEDIASOUP_SERVER: "", // Optional, URL of the MediaSoup server to broadcast to for larger screen/file shares
|
|
TWITCH_PROXY_PATH: "", // Optional, URL of the server that can proxy twitch HLS stream playlists and segments
|
|
VBROWSER_ADMIN_KEY: "", // Optional, the key to hit admin endpoints on the vbrowser
|
|
OPENSUBTITLES_KEY: "", // Optional, key to OpenSubtitles API
|
|
};
|
|
|
|
export default {
|
|
...defaults,
|
|
...process.env,
|
|
};
|