environment: production

Everything is configured

Nothing is outstanding. Delete this page whenever you like — it is copied source.

Database

  • DATABASE_URLset

    Everything that reads or writes data.

  • DATABASE_URL_UNPOOLEDset

    Migrations (pnpm db:migrate) and pnpm db:studio.

Sign-in

  • CLERK_SECRET_KEYset

    Signing in, and every permission check.

  • NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYset

    The sign-in and sign-up UI.

  • CLERK_WEBHOOK_SIGNING_SECRETnot set

    Keeping the local user row in step with Clerk. Not needed on localhost.dashboard.clerk.com → Configure → Webhooks

Payments

  • STRIPE_SECRET_KEYnot set

    Checkout, subscriptions and the webhook ledger.dashboard.stripe.com → Developers → API keys (Test mode ON)

  • STRIPE_WEBHOOK_SECRETnot set

    Verifying Stripe webhooks. Printed by `stripe listen` on its first line.run `pnpm dev` — the Stripe CLI prints it

  • NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYnot set

    Stripe Elements in the browser.dashboard.stripe.com → Developers → API keys

Error tracking

  • SENTRY_DSNnot set

    Forwarding to Sentry. Errors are recorded in error_log and listed under Admin either way.sentry.io → your project → Settings → Client Keys (DSN)

Rate limiting

  • UPSTASH_REDIS_REST_URLnot set

    Rate limits shared between instances. Without it each process counts alone, so a fleet allows N times the limit.console.upstash.com → your database → REST API → the https:// url, not the redis:// one

  • UPSTASH_REDIS_REST_TOKENnot set

    The other half of the shared rate-limit store.console.upstash.com → the same panel → REST token

server

  • NODE_ENVset

  • LOG_LEVELnot set

  • BOOTSTRAP_ADMIN_EMAILset

client

  • NEXT_PUBLIC_APP_URLset