NODE_ENV=production
comingsoon=TRUE

PORT=3010
API_UPSTREAM=http://127.0.0.1:6000
PUBLIC_ORIGIN=https://example.com

BACKEND_PORT=6000
BACKEND_HOST=127.0.0.1
BACKEND_ALLOWED_ORIGINS=https://example.com
TSS_BATTLES_DB=./tss_battles.db
TSS_TEAMS_DB=./tss_teams.db

# Vehicle name translation + icon caches (shared STORAGE/CACHE, built by the bots).
# The backend loads these at startup to translate vehicle_internal (cdk) -> name
# and resolve icon filenames for the game scoreboard.
VEHICLE_TRANSLATIONS_JSON=/mnt/HC_Volume_105581488/STORAGE/CACHE/vehicle_translations.json
# vehicle_data_cache.json (icons-only) is what the bots actually write; the
# *_all variant (every vehicle, incl. iconless) also works if present.
VEHICLE_DATA_CACHE_JSON=/mnt/HC_Volume_105581488/STORAGE/CACHE/vehicle_data_cache.json
# Directory of vehicle icon PNGs served at /vehicle-icons (deploy-time copy/symlink
# of SHARED/ICONS/VEHICLES). VEHICLE_ICONS_SRC is the deploy source.
VEHICLE_ICONS_DIR=./dist/vehicle-icons
VEHICLE_ICONS_SRC=/home/deploy/BOTS/SHARED/ICONS/VEHICLES

UPTIME_STORAGE_DIR=~/tsswebstorage
UPTIME_DATABASE_FILE=uptime.sqlite
UPTIME_SAMPLE_INTERVAL_MS=1800000
UPTIME_HISTORY_LIMIT=336

ANALYTICS_DATABASE_FILE=viewers.sqlite
ANALYTICS_RETENTION_DAYS=30
ANALYTICS_ACTIVE_WINDOW_SECONDS=75

API_CACHE_TTL_MS=15000
API_RATE_LIMIT_WINDOW_MS=60000
API_RATE_LIMIT_MAX=120

# Proxy trust. Set to "cloudflare" when the app is fronted by Cloudflare (possibly via nginx).
# "generic" trusts X-Forwarded-* without CF-specific headers. "none" ignores all proxy headers.
# Only honors trusted headers when the immediate TCP peer is in TRUSTED_UPSTREAM_IPS.
TRUST_PROXY=cloudflare
TRUSTED_UPSTREAM_IPS=127.0.0.1,::1,::ffff:127.0.0.1

WEBHOOK_PORT=3011
GITHUB_WEBHOOK_SECRET=change-me
# Comma-separated refs allowed to trigger a deploy. Defaults to refs/heads/main.
GITHUB_WEBHOOK_REFS=refs/heads/main
# Optional: refuse pushes whose repository.full_name does not match (e.g. "owner/repo").
GITHUB_WEBHOOK_REPOSITORY=
PM2_RESTART_TARGETS=tssbot-web,tssbot-backend
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
# Set to "true" only if the Discord channel is private. Default omits the patch preview
DISCORD_INCLUDE_PATCH=true

# Cloudflare Turnstile. VITE_TURNSTILE_SITE_KEY is the public site key baked into the client bundle by Vite.
# TURNSTILE_SECRET_KEY is the server-only secret used to call the Siteverify endpoint.
VITE_TURNSTILE_SITE_KEY=
TURNSTILE_SECRET_KEY=
