Skip to content

DocsTeams

Run a private deployment

Updated Sep 15, 2026

A private deployment runs the whole product on infrastructure you control - your own Vercel project, your own Redis and file storage - licensed for a fixed number of seats and a term, rather than billed month to month through us.

What's different from the hosted product

  • No billing through us. There is no plan to pick and no card on file. Every feature is unlocked by your licence for as long as it is valid.
  • No marketing or pricing pages. The product-marketing pages on the hosted site are hidden on a private deployment; there's nothing to compare plans against.
  • One licence covers the whole deployment. Everyone who signs in shares the same licence, seat count and renewal date - there's no per-account plan to manage.

What you'll need

  • A Vercel account (free tier is fine to start).
  • A Redis add-on (an Upstash-compatible Redis works well and is available directly from Vercel's marketplace).
  • A file storage add-on for site assets and uploads (Vercel's own Blob storage works out of the box).
  • A licence key, issued to you for your organization with a seat count and an expiry date.

Setting it up

From a terminal in the project folder, run:

npm run deploy:private

This walks you through connecting the project to your Vercel account, connecting Redis and file storage (either through Vercel's marketplace or by pasting in connection details you already have), and entering your licence key. It finishes by deploying the project. You can re-run it any time to change a value or redeploy.

If you'd rather do it by hand, the same setup can be done from Vercel's own dashboard: create a project from this codebase, add a Redis and a Blob storage integration, and set the values the setup command would otherwise have asked for as environment variables on the project before deploying.

Checking status

Once signed in, Settings › General shows a "Private deployment" card with:

  • Whether your licence is active, and who it's issued to
  • Your seat count
  • When the licence expires
  • The version you're running, and whether a newer one is available

Licence expiry and renewal

An expired or missing licence doesn't take your data away - it falls back to the same limits a brand-new, un-upgraded account would have on the hosted product, so nothing is deleted and nothing is destructive. Reach out to renew or extend your licence before it expires to avoid any interruption; the status card starts showing the expiry date well ahead of time.

Updating

A private deployment doesn't update itself. When the status card shows a newer version is available, pull the latest release into your project and redeploy - your Redis and file storage stay exactly as they are across an update.