Service Plans
Service plans define what resources a customer can use. Each plan specifies quotas for services, CPU, memory, storage, and feature access.
Default Plans
The panel ships with three default plans:
| Plan | Services | CPU | Memory | Storage | Features |
|---|---|---|---|---|---|
| Starter | 3 | 2 cores | 4 GB | 20 GB | Template deploy only |
| Pro | 10 | 8 cores | 16 GB | 100 GB | All deploy methods |
| Enterprise | Unlimited | Unlimited | Unlimited | Unlimited | All features + priority |
Default plans can be modified or deleted. You can create custom plans to match your pricing and resource model.
Creating a Plan
Navigate to Settings > Service Plans > New Plan and configure:
Basic Information
| Field | Description |
|---|---|
| Name | Plan display name (e.g., "Pro") |
| Description | Brief description shown to customers |
| Sort Order | Display order in plan selection dropdowns |
Resource Quotas
| Quota | Description | Example |
|---|---|---|
| Max Services | Maximum number of deployed services | 10 |
| Max CPU | Total CPU cores across all services | 8 |
| Max Memory | Total memory (MB) across all services | 16384 |
| Max Storage | Total disk storage (MB) across all services | 102400 |
| Max Bandwidth | Monthly bandwidth limit (MB), 0 = unlimited | 0 |
Feature Gates
| Feature | Description |
|---|---|
| Template Deploy | Deploy from the template catalog |
| Git Deploy | Deploy from Git repositories |
| AI Deploy | AI-powered deployment |
| Compose Deploy | Raw Docker Compose deployment |
| Custom Domains | Assign custom domains to services |
| Backup | Access to backup and restore features |
| Notifications | Configure notification channels |
| API Access | Use the REST API programmatically |
Quota Enforcement
Quotas are enforced at deploy time:
- Service count — new deploys are blocked if the customer has reached their service limit
- CPU and memory — the panel sums resource usage across all customer services and rejects deploys that would exceed limits
- Storage — volume sizes are tracked and checked before provisioning
- Feature gates — deployment methods not included in the plan are hidden from the customer's UI
Over-Quota Behavior
When a customer is over quota:
- Existing services continue running — the panel never stops running services due to quota changes
- New deployments are blocked with a clear error message
- The admin dashboard shows quota warnings for customers approaching limits
- Notifications are sent to admins when customers reach 80% and 100% of any quota
Assigning Plans
Plans are assigned when creating or editing a customer:
- Navigate to Customers > [Customer Name] > Edit
- Select the new plan from the dropdown
- Click Save
Plan changes take effect immediately. If downgrading to a plan with lower limits, existing services are not affected, but no new services can be deployed until usage is within the new limits.
Usage Tracking
The panel tracks resource usage per customer:
| Metric | How It's Measured |
|---|---|
| Service count | Number of non-deleted services |
| CPU usage | Sum of cpu limits across containers |
| Memory usage | Sum of memory limits across containers |
| Storage usage | Sum of volume sizes |
| Bandwidth | Network I/O tracking per container (monthly) |
Usage data is available in the customer detail page and via the API.
Billing Integration
Service plans track usage metrics that can be exported for billing:
- Per-customer resource consumption over time
- Service deployment and deletion events
- Plan change history
- Usage snapshots at configurable intervals
The panel does not include built-in payment processing. Use the API to export usage data to your billing system (Stripe, invoice tools, etc.).