Infrastructure
- Fresh Supabase project created
- All
supabase/migrations/*.sqlapplied in numeric order -
TENANT_SECRETS_MASTER_KEYandSTREAMLY_CRON_SECRETgenerated - Env configured (
.env.local, host secrets, or Wrangler secrets) - App reachable on your public URL
- Cloudflare buyers: own KV ids + routes personalized;
ENABLE_DEMOoff
Operator access (production)
-
ENVATO_PERSONAL_TOKENset -
RESEND_API_KEY+STREAMLY_FROM_EMAILset (required for magic-link login) - Open
/admin/login, activate with purchase code, complete email verify if prompted (/verify-email) - Complete
/admin/onboardingif shown - Confirm Overview loads at
/admin/overview - Demo flags (
ENABLE_DEMO/ADMIN_ALLOW_DEMO_LICENSE) disabled on real installs
Branding & themes
- Open
/admin/themesand Apply a built-in theme - Optionally preview with
/?__theme_preview=<themeId>(operator session) - Customize logos, colors, fonts, SEO in
/admin/landing-page - Confirm storefront chrome matches the active theme (
data-storefront-theme)
Catalog & playback
- Add or import at least one movie/show in
/admin/catalog - Attach a content source (URL/HLS/embed or
managed+ Addons) - Optional:
pnpm run sync:tmdbfor bulk metadata hydrate - Verify
/title/[slug]and watch routes as a viewer
Billing (optional)
- Install Stripe in
/admin/plugins(publishableKey,secretKey,webhookSecret) - Configure plans in
/admin/plans - Set webhook to
/api/webhooks/stripe(+ Connect secret if used)
Go-live
- Set production
NEXT_PUBLIC_APP_URL/PLATFORM_HOST/ API base - Configure custom domain (Domain)
- Schedule jobs (Cloudflare cron or Node
POST /api/internal/jobs/run) - Review legal pages (Legal & Marketing)
- Check
/admin/inboxfor contact-form messages after go-live