.env.production.sample# ===========================================# Production Environment# ===========================================# Rename this file to .env.production and fill in the values.## Vercel: push these with the Publish view in the Gallop AI Editor, or with# `vercel env pull` / `vercel env add`.# Cloudflare: run `npm run cf:secrets` to upload them as Worker secrets.## Never commit .env.production — it holds real secrets.# ===========================================NEXT_PUBLIC_PRODUCTION_URL=https://yourdomain.com# Mailgun — contact form delivery (/api/submit-form)MAILGUN_API_KEY=your-mailgun-api-key-hereMAILGUN_DOMAIN_NAME=mg.yourdomain.comMAILGUN_SMTP_MAIL=contact@yourdomain.comMAILGUN_FROM_NAME="Your Business"MAILGUN_TO_RECIPIENTS=sales@yourdomain.comMAILGUN_DEV_MAIL=you@example.comMAILGUN_DEV_NAME="Your Name"FLOWTRACE_TO_RECIPIENTS=you@example.com# OpenAI — /api/assistant. Build fails at page-data collection without these.# MUST BE REPLACED PER CUSTOMER: OPENAI_VECTOR_STORE_ID must point at a vector# store holding THIS company's product documentation. Pointing it at another# company's store makes the site assistant answer confidently about products# you do not sell.OPENAI_API_KEY=your-openai-api-key-hereOPENAI_VECTOR_STORE_ID=vs_your-vector-store-id# Cloudflare Turnstile — form spam protection.# REQUIRED: the quote form runs with turnstile enabled. Without a site key the# widget cannot issue a token and submissions fail verification.NEXT_PUBLIC_CLOUDFLARE_TURNSTILE_SITE_KEY=your-turnstile-site-keyCLOUDFLARE_TURNSTILE_SECRET_KEY=your-turnstile-secret-key# Analytics (optional)NEXT_PUBLIC_GOOGLE_ANALYTICS=G-XXXXXXXXXXNEXT_PUBLIC_GOOGLE_ADS_ID=AW-XXXXXXXXX