pnpm run build output is a standard Next.js app. Vercel is a supported Node host. This is not static hosting: operator login, APIs, and webhooks need the server runtime.
1 - Import the app
Create a Vercel project from thestreamly/ folder (the directory that contains package.json), not the outer CodeCanyon ZIP wrapper.
Build command: pnpm run build (or Vercel’s Next.js default).
Install command: pnpm install.
2 - Production environment variables
Set these in the Vercel project Settings → Environment Variables for Production. Keep secrets server-only - never prefix them withNEXT_PUBLIC_.
Full list: Environment Variables.
Leave
ENABLE_DEMO unset (or false) on Vercel production. It is only for the public CodeCanyon preview and permits shared demo credentials.
3 - First operator
- Deploy the production URL.
- Open
/admin/login. - Sign in with exactly the bootstrap email and password.
- After success, remove
STREAMLY_INITIAL_ADMIN_PASSWORDfrom Vercel and redeploy. Later logins use Supabase Auth only.
POST /api/admin/login will not create or promote any other user after that first operator exists.
4 - After deploy
Optional: Vercel Cron can
POST /api/internal/jobs/run with X-Streamly-Cron-Secret. See Deploy (Node) for job payloads.
The built-in login limit is per application instance. Add a Vercel Firewall rate-limit rule for POST /api/admin/login on a distributed production deployment.