Deployment groups & releases
Target devices and roll out firmware safely with deployment groups — conditions, concurrency, failure limits, and releases.
Written By Josh Kalderimis
Last updated About 2 months ago
A deployment group targets a set of devices and tells them which firmware to run, with controls for how fast and how safely the rollout happens. Each firmware version published to a group is a release.
Naming: the web UI says deployment group / release. The
nhCLI still calls the object a deployment.
How it works
Targeting conditions decide which devices the group applies to (version + tags).
The current release is the firmware those devices should run.
When the group is active and its release is newer than a matching device, NervesHub offers the update. A distributed orchestrator runs the rollout within your limits.
A group is pinned to one platform and architecture (set from its first release), so every future release stays compatible. See Deployment orchestration for the model.
Create a group
Web UI → Deployment Groups → New:
Pick the firmware for the first release (fixes platform + architecture).
Set targeting conditions.
Set rollout options.
Save, then mark it active.
Targeting conditions
If a device matches multiple groups, NervesHub prefers the most specific tag match.
Rollout options
Priority queue (optional)
A faster lane for devices far behind:
Publish a new release
Publish new firmware to the product (
nh firmware publishor web UI).In the group, select it as the new release.
The current release updates and the orchestrator offers it under your rollout rules.
Only firmware matching the group's platform + architecture can be selected.
Roll back
Set an earlier release (or known-good firmware) as the current release. Matching devices are offered it on their next check-in, using the same rollout rules.
From the CLI
nh deployment list
nh deployment create
nh deployment update <deployment> <key> <value>See the CLI reference.