Deploy your generated app to production with Vercel, custom domains, and environment management.
DreamOS86 generates production-ready Next.js apps. Deployment targets:
| Platform | Notes |
| ---------- | ------- |
| Vercel | Recommended. Zero-config, instant deploys |
| Railway | Great for full-stack with databases |
| Fly.io | Best for global edge deployments |
| Self-hosted | Any Node.js-capable server |
---
In Vercel project settings → Environment Variables, add all variables from your .env.local.example:
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
NEXT_PUBLIC_APP_URL=https://yourdomain.com
STRIPE_SECRET_KEY
STRIPE_WEBHOOK_SECRET
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
ANTHROPIC_API_KEY
This is critical for OAuth redirects to work in production:
NEXT_PUBLIC_APP_URL=https://yourdomain.com
Without this, OAuth callbacks will redirect to the wrong URL.
Add your production domain to Supabase → Auth → URL Configuration → Redirect URLs:
https://yourdomain.com/auth/callback
---
cname.vercel-dns.comAfter adding your domain, update the allowed redirect URLs in Supabase to include your new domain.
---
DreamOS86 supports three environments:
| Environment | Branch | Purpose |
| ------------- | -------- | --------- |
| Production | main | Live site |
| Preview | Any PR | PR preview URLs |
| Staging | staging | Pre-release testing |
---
To roll back to a previous deployment:
This triggers a re-deployment of the selected build.
---
→ Check that all required environment variables are set in Vercel. The most common cause is missing NEXT_PUBLIC_SUPABASE_URL.
→ Update NEXT_PUBLIC_APP_URL to your production domain and add the domain to Supabase's allowed redirect list.
→ Set the webhook endpoint in Stripe Dashboard to your production URL, and update STRIPE_WEBHOOK_SECRET with the production signing secret.