Deployment
Deploying Ezvento requires configuring environment variables, setting up the PostgreSQL database with Prisma, applying RLS policies, and connecting Resend (email) and Dodo Payments (billing). This guide covers every step.
Environment Variables
Copy
.env.local.example → .env.local and fill in all required values before running the app.| Variable | Required | Source | Description |
|---|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Required | Supabase Project Settings → API | Public Supabase project URL (e.g. https://your-project.supabase.co) |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Required | Supabase Project Settings → API | Public anon key for client-side auth and DB access |
SUPABASE_SERVICE_ROLE_KEY | Required | Supabase Project Settings → API | Service role key for server-side admin operations (keep secret) |
DATABASE_URL | Required | Supabase → Connection Pooler or Direct | Prisma connection string with pgbouncer mode for serverless |
RESEND_API_KEY | Required | https://resend.com → API Keys | Transactional email API key for invoices, password resets, and alerts |
RESEND_SEND_DOMAIN | Required | Resend → Domains | Verified sending domain (e.g. mail.ezvento.com) |
RESEND_FROM_EMAIL | Optional | Your preference | Default From address (e.g. Ezvento <billing@mail.ezvento.com>) |
RESEND_REPLY_TO | Optional | Your preference | Reply-To address (e.g. support@ezvento.com) |
DODO_API_KEY | Required | https://dashboard.dodopayments.com → Settings → API Keys | Dodo Payments API key for subscription billing |
DODO_WEBHOOK_SECRET | Required | Dodo Dashboard → Webhooks | Webhook secret for verifying Dodo payment event signatures |
DODO_BASE_URL | Required | Dodo Dashboard | API base URL (sandbox: https://api.sandbox.dodopayments.com) |
NEXT_PUBLIC_APP_URL | Required | Your deployment URL | Canonical app URL (e.g. https://ezvento.com) — used in emails and webhooks |
NEXT_PUBLIC_ADMIN_HOST | Optional | Your domain config | Admin host domain (e.g. admin.ezvento.com) — used to block apex access in production |