Tiers & quotas
MZPanel has four plans. The plan sets your VPS quota (how many servers you can connect) and which features are unlocked.
Plan comparison
Section titled “Plan comparison”| Tier | Price | VPS quota | Highlights |
|---|---|---|---|
| Free | $0 | 1 | Site CRUD, local backup, basic SSL |
| Plus | $3/mo | 3 | + Offsite backup, Cloudflare integration |
| Pro | $6/mo | 10 | + Multi-user share-host, monitoring, Docker apps, WAF, staging |
| Max | $20/mo | 50 | + Priority support, white-label, API access |
Prices are billed in USD. Annual billing is discounted.
How enforcement works
Section titled “How enforcement works”Enforcement happens at the API layer when an agent connects — not on the VPS:
- The agent dials in and presents its token.
- The API checks your
org.tierandorg.active_servers < tier.max_vps. - Within quota → the connection is accepted and the license payload is sent in the
welcomeenvelope. - Over quota → the API refuses the WebSocket and the agent retries in ~1h.
Offline grace
Section titled “Offline grace”The license verdict is cached on the VPS at /etc/mzagent/license.json with a
7-day offline grace. If the control plane is briefly unreachable, the agent keeps
working — it doesn’t go dark the moment it can’t phone home.
Feature gating
Section titled “Feature gating”Per-feature gates (Docker, WAF, staging, offsite backup, private network, …) are enforced server-side by tier. The dashboard shows a plan badge on locked features so you can see what an upgrade unlocks.
See also the design reference: docs/02-license-and-pricing.md.