Cubed Docs
Deployment

Pick your host

Every host runs identical code against your Supabase project. Pick on preference, not compatibility.

Because your content and uploads live in Supabase, there is nothing to store on the server. No permanent disk requirement, no database service to provision, no object storage to bolt on, and no per-host code changes — except one line on Netlify.

So pick on price, control and how much server administration you want to do.

Which one is right for you?

DifficultyCostYou maintain
PterodactylEasyAlready paying for itThe panel
VPS + nginxHardFrom ~$5/monthEverything
VercelEasyFree tier is usually enoughNothing
NetlifyEasyFree tier is usually enoughNothing
Coolify / DokployMediumCost of the server it runs onThe server

Straight recommendations

  • You already rent a Pterodactyl panel: Pterodactyl. No new bill, no new thing to learn.
  • You want a real domain and full control: VPS + nginx.
  • You never want to touch a server: Vercel.

You can move later. Point the new host at the same Supabase project and your content comes with you — settings, page text, logo, everything.

What every route needs

The same four things, in the same way.

The same environment variables

Every host reads the identical set. On managed hosts you paste them into a form instead of a file. → Environment variables

A seeded Supabase project

bun run seed, run once, from anywhere. It creates the tables, the default content and your admin login. Every guide below assumes you have already done it. → Install and seed

SUPABASE_URL present at build time

The build bakes your Supabase hostname into the image loader and the Content-Security-Policy. Miss it and the site deploys fine but your uploaded logo is blocked in the browser.

NEXT_PUBLIC_SITE_URL matching the real address

Exactly — including https://, any port, and www or no www. A mismatch makes "add to basket" fail with a 403 once you are live.

After it is live

  1. Open https://yourdomain.com/admin and log in.
  2. Change the seeded admin password if you used the default.
  3. Set your brand name, logo and colours: Admin panel.
  4. Check the store lists packages, and that a test basket reaches Tebex checkout.
  5. Remove the theme's development-only origins from next.config.ts — see Security and headers.

Backups

Your servers hold nothing but code — wiping and rebuilding one loses no data. Back up in the Supabase dashboard instead: Database → Backups for your content, and your Storage bucket for uploaded images.

On this page