Skip to content

Self-host vs Mezzanine Cloud

Mezzanine comes two ways — the software is identical; the difference is who runs it.

Self-hosted (open source)

Download, run it on your own server, manage unlimited everything. Free forever, MIT-licensed.

  • No server limit, every feature, no plan badge
  • Your data + secrets never leave your machine
  • You patch, back up, and update it
  • Start at Installation

Mezzanine Cloud (hosted)

We run your Mezzanine for you. Sign up at try.mezzanine.cloud, get 1 server free, upgrade for more.

Open SourceHosted FreeHosted StarterHosted Pro
Price$0 (self-host)$0$19/mo$79/mo
Adopted serversunlimited110unlimited
We host + update
Backups + monitoringyou
Supportcommunitycommunityemailpriority

See live pricing on mezzanine.cloud/#pricing.

How hosting works (architecture)

Mezzanine Cloud is instance-per-tenant: each signup gets its own isolated Mezzanine container + its own database. No shared multi-tenant database — so one customer can never see another’s servers or credentials. Your hosted panel runs the exact same image you’d self-host.

Mezzanine production topology across two servers

try.mezzanine.cloud → sign up / manage account / billing
<your-slug>.mezzanine.cloud → your own isolated Mezzanine panel

Idle free instances hibernate to save resources and wake (~a few seconds) on your next visit. Paid instances stay always-on. Full design: the SaaS architecture doc in the repo.

Billing & upgrades

Hosted billing runs on Razorpay (INR, monthly subscriptions). From your account dashboard:

  1. Pick a paid plan → Upgrade opens Razorpay Checkout (cards, UPI, netbanking).
  2. On payment, a signed webhook updates your plan and raises your server limit automatically — your panel re-provisions in a few seconds with the new quota.
  3. Cancel anytime from the dashboard. You keep paid limits until the current cycle ends, then drop back to Free.

We never store card data — Razorpay holds it; we keep only the subscription reference. Self-hosted instances have no billing and no limits at all.

Operators self-hosting the hosted stack: billing is env-gated on RAZORPAY_* keys. Without them the plan cards still render (display-only) and checkout returns 503 — so the control plane runs fine before you wire payments. Setup steps are in deploy/saas/README.md.

Custom domains

Don’t want you.mezzanine.cloud? Map your own hostname:

  1. Dashboard → Custom domain → enter panel.yourcompany.com.
  2. Add a DNS CNAME: panel.yourcompany.comyou.mezzanine.cloud.
  3. Click Verify DNS — we confirm it points here, add the route, and issue a TLS certificate (HTTP-01, usually within a minute).

Your panel then answers on both the slug and your domain. Remove it anytime to drop back to the slug.

Data export — never locked in

Dashboard → Your dataExport downloads a .tgz of your panel’s full SQLite database + uploads. It’s the exact format a self-hoster runs, so you can lift-and-shift to your own server whenever you like. No lock-in is a first-class feature, not an afterthought.

Onboarding

When you sign up, your panel is provisioned with your account as the owner admin automatically — no “create the first admin” screen, no extra password. You land straight in your workspace.

Which should I pick?

  • Want control + zero cost + already comfortable with a VPS? Self-host.
  • Want it to just work, with backups + updates handled? Hosted.
  • You can move between them — both use the same SQLite data format, so a hosted account can export and self-host later (and vice versa).