Start
Runtime support matrix
The complete upstream guide to runtime support matrix, synchronized with the product repository.
Product v0.18.26 · Complete source guide
Support matrix
Which service features work where. The panel reads the same evaluation from GET /v1/services/:id/capabilities and disables a control before you save it. The routes refuse with the same reasons.
✅ works · 🟡 works partly or is held at run time · 🚧 being built · — refused when saved
| Feature | Docker (panel host) | Docker from an image (panel host) | Compose (panel host) | PM2 (panel host) | Docker (node) | Compose (node) | Docker (Swarm) | Docker (panel host + node fan-out) |
|---|---|---|---|---|---|---|---|---|
| Maintenance mode | ✅ | ✅ | ✅ | ✅ | 🟡 [1] | 🟡 [1] | ✅ | — [2] |
| Custom error pages | ✅ | ✅ | ✅ | ✅ | 🟡 [1] | 🟡 [1] | ✅ | — [3] |
| Panel sign-in on a domain (forward auth) | ✅ | ✅ | ✅ | ✅ | — [4] | — [4] | ✅ | — [5] |
| Restart-loop limit | ✅ | ✅ | — [6] | ✅ | 🟡 [7] | — [6] | — [6] | ✅ |
| Inline Dockerfile | ✅ | — [8] | — [8] | — [8] | 🟡 [9] | — [8] | — [8] | ✅ |
| File mounts | ✅ | ✅ | — [10] | — [10] | ✅ | — [10] | ✅ | ✅ |
| Autoscaling | ✅ | ✅ | — [11] | — [11] | 🟡 [12] | — [11] | 🟡 [13] | ✅ |
| Scale to zero | ✅ | ✅ | — [14] | — [14] | 🚧 [15] | — [14] | 🟡 [16] | ✅ |
| Canary releases | ✅ | ✅ | — [17] | — [17] | 🟡 [18] | — [17] | 🟡 [19] | ✅ |
Notes
- On a node, the node's agent serves the pages itself: it must be v0.18.27 or newer and run as the ninedeploy-agent container, and its owner must not have turned it off (NINEDEPLOY_AGENT_NODE_PAGES=off)
- Maintenance mode is not available for a service that also runs on nodes
- Custom error pages are not available for a service that also runs on nodes
- Panel sign-in is for domains of services on the panel host for now
- Panel sign-in is not available for a service that also runs on nodes
- The restart-loop limit is for docker services and for PM2 services on the panel host, not Swarm
- On a node, the node's agent reports the restarts and the stop is the Stop button's own: the agent needs ordered lifecycle (v0.18.3 or newer). While the node cannot be reached, nothing is counted, and a requested Stop waits for the node
- An inline Dockerfile is for docker services that build from source, not from an image or a compose file
- On a node, the service must build on the panel host (Service → Settings → Build on: panel); a build on a node or a build server would not have the file
- File mounts work for docker services only (on the panel host, a node or Swarm), not for compose or PM2 services; remove the files (Service → Volumes → Files) to deploy it.
- Autoscaling applies to docker services only
- On a node, requests-per-second scaling needs an agent with proxy traffic observation turned on (NINEDEPLOY_AGENT_PROXY_TRAFFIC=on)
- Swarm services are not autoscaled: they run the replica count set on the service
- Scale to zero applies to docker services only
- Scale to zero on nodes is being built (R2); until it is accepted, a node service does not sleep
- Scale to zero does not apply to Swarm services; the setting is kept but nothing sleeps
- Canary releases apply to docker services only
- On a node, a canary needs a single replica, the strict HTTP healthcheck and an agent with proxy traffic observation
- Swarm services skip the canary and use Docker’s native rolling update
Checks of the live environment are not in this table. They run when you save or deploy. Examples: whether Traefik can reach the panel for maintenance pages and forward auth, and whether a node agent advertises an operation.
Source guide (installer links and live inventory counts are normalized for this site): docs/SUPPORT_MATRIX.md.