This repo should not contain production secrets. Keep all credentials in the deployment platform and local .env.local.
DATABASE_URLBETTER_AUTH_SECRETGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETZPAY_PIDZPAY_KEYR2_ACCESS_KEY_IDR2_SECRET_ACCESS_KEYR2_IMAGE_BUCKET_NAMERESEND_API_KEYEVOLINK_API_KEYKIE_API_KEYKIE_WEBHOOK_SECRETCRON_SECRET
The current runtime no longer uses Supabase Auth, N8N webhook URLs, or per-tool Supabase RPC credentials. Remove those variables from deployment environments after confirming there are no old deployments still serving them. Google One Tap is optional in the current login surface and should only be enabled with the current NEXT_PUBLIC_GOOGLE_ONE_TAP_ENABLED and Google OAuth configuration.
- Rotate any secret that was previously copied into local docs or screenshots.
- Verify Stripe webhooks against
STRIPE_WEBHOOK_SECRET. - Call maintenance endpoints with
Authorization: Bearer $CRON_SECRET; do not pass secrets in query strings. - Run
npm run typecheckandnpm run buildbefore deployment. - Run
npm run db:migrateonly against the intended production database URL.