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=""