NexosNexos

Resource Limits & Quotas

Two levels of limits. Per-project limits cap each environment's container. Account quotas cap your total usage across every environment. The scheduler checks both before every deploy.

Per-project limits

Set them in the dashboard or in nexos.yaml. Enforced by containerd via Linux cgroups.

# nexos.yaml
app:
  cpu: 1            # vCPU (0.1–16)
  memory: 512       # vRAM in MB (64–65536)

buildResources:
  cpu: 2            # vCPU during build
  memory: 2048      # vRAM in MB during build
  timeout: 600      # max build seconds (60–3600)
  • vCPU is throttled via CFS bandwidth — the app slows down past the limit but is not killed.
  • vRAM exceeded → container is OOM-killed and restarted.
  • Build timeout — hung builds get killed, freeing the node.

Account quotas

Quotas prevent one user from monopolizing the network. Determined by your plan — each tier is a flat monthly fee with these hard caps included; there are no usage charges on top:

QuotaFreeProTeamEnterprise
Max projects1310Custom
Total environments51550Custom
Active at once2515Custom
Total vCPU2612Custom
Total vRAM4 GB12 GB24 GBCustom
Build minutes / month3001,5005,000Custom
Members115 (+$5/seat)Custom
Private nodesCustom
Auto-pauseYesYesYes
Custom domainsYesYes
Create teamsYesYes

Hit a quota? New deploys queue rather than fail. Free capacity by pausing or destroying environments you don't need, or upgrade your plan for higher ceilings.

Resource add-ons

If a tier fits but you need a bit more compute, you don't have to jump to the next plan. Paid plans (Pro and Team) support resource add-ons, structured like extra seats: each add-on raises your account ceilings by +1 vCPU and +2 GB vRAM for $5/mo, billed as part of your subscription. Pick the number of add-ons at checkout — there is no cap, add as many as you need. Add-ons apply to your total account quota — the per-container limits above are unchanged. To change the add-on count later, cancel and resubscribe with the new configuration (same as switching tiers).

How the scheduler picks nodes

  1. Filter — exclude nodes without enough free capacity for the project's requested resources.
  2. Score — prefer nodes with cache affinity (built this project before) and geographic proximity.
  3. Reserve — capacity is reserved for the environment's lifetime, so accurate limits matter. Requesting 4 vCPU when your app uses 0.5 wastes capacity others could use.

Check your quota via API

GET /api/quota
Authorization: Bearer nxs_your_api_key

Response:

{
  "plan": "team",
  "usage": {
    "projects": 3,
    "total_cpu": 6.5,
    "total_memory_mb": 14336,
    "build_minutes_used": 1240
  },
  "limits": {
    "max_projects": 5,
    "max_cpu": 12,
    "max_memory_mb": 24576,
    "build_minutes": 5000
  }
}