brackt/.env.example
Chris Parsons 07f1356cd3
All checks were successful
🚀 Deploy / 🧪 Test (pull_request) Successful in 3m32s
🚀 Deploy / ʦ🔍 Typecheck & Lint (pull_request) Successful in 1m23s
🚀 Deploy / 🐳 Build (pull_request) Has been skipped
🚀 Deploy / 🚀 Deploy (pull_request) Has been skipped
🚀 Deploy / 🧪 Test (push) Successful in 3m29s
🚀 Deploy / ʦ🔍 Typecheck & Lint (push) Successful in 1m30s
🚀 Deploy / 🐳 Build (push) Successful in 1m17s
🚀 Deploy / 🚀 Deploy (push) Successful in 11s
Sync IndyCar standings from OC Blacktop, fall back to ESPN
ESPN's IndyCar standings aggregate lags hours behind a race finish (Palou
stuck at 374 an evening after Mid-Ohio, vs. his true 409/P1). Add an
OcBlacktopIndyCarStandingsAdapter that reads the fresher OC Blacktop feed and
delegates to the existing ESPN IndyCarStandingsAdapter on any failure (missing
key, network error, empty payload, or schema drift) so a flaky third party
never breaks the sync.

Per-row validation throws on missing id/name or unparseable position/points to
route to the fallback rather than overwriting real standings with zeros, while
still keeping legitimate 0-point backmarkers.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 21:20:47 -07:00

38 lines
1.4 KiB
Text

NODE_ENV="development"
DATABASE_URL=""
# PgBouncer support (Vultr managed PostgreSQL)
# Set PGBOUNCER=true when DATABASE_URL points to a PgBouncer endpoint (port 6432).
# This disables prepared statements, required for PgBouncer transaction mode.
# DATABASE_DIRECT_URL is used by migrations; it must be a direct connection (port 5432).
# Leave both unset for local development with plain PostgreSQL.
PGBOUNCER=
DATABASE_DIRECT_URL=
BETTER_AUTH_SECRET=""
# Canonical public app URL used by auth links, OAuth callbacks, and Cloudinary webhook callbacks.
# Examples: http://localhost:5173, https://brackt.com
APP_URL=""
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
DISCORD_CLIENT_ID=""
DISCORD_CLIENT_SECRET=""
CONTAINER_REGISTRY=""
SENTRY_AUTH_TOKEN=""
SQUIGGLE_CONTACT_EMAIL=""
RESEND_API_KEY=""
TURNSTILE_SITE_KEY=1x00000000000000000000AA
TURNSTILE_SECRET_KEY=1x0000000000000000000000000000000AA
# Cloudinary avatar uploads. API secret must stay server-only.
CLOUDINARY_CLOUD_NAME=""
CLOUDINARY_API_KEY=""
CLOUDINARY_API_SECRET=""
# Shared secret for cron job endpoints (POST /admin/jobs/*).
# Must match the CRON_SECRET repo secret in Forgejo.
# Generate with: openssl rand -hex 32
CRON_SECRET=""
# OC Blacktop motorsport API — used to sync IndyCar championship standings
# (fresher than ESPN's aggregate). Free tier at https://ocblacktop.com/api.
# If unset, IndyCar standings fall back to ESPN.
OCBLACKTOP_API_KEY=""