Create a fleet in balenaCloud and add target devices by downloading and flashing the fleet-specific balenaOS image; devices register automatically on first boot.
Structure your application as a docker-compose.yml with one or more service definitions; push the release with 'balena push FLEET_NAME' from the project directory.
balenaCloud builds the container images, creates an immutable release, and immediately begins rolling out to all online devices in the fleet; each device downloads and applies the release via the Supervisor.
Configure the update strategy in the fleet settings (e.g., download-then-kill vs. hand-over) to control whether services restart immediately or wait for a low-traffic window.
Pin individual devices to specific releases for canary testing using the device's dashboard or 'balena device pin DEVICE_UUID RELEASE_ID'; unpin to resume fleet tracking.
Monitor rollout progress in the fleet Releases view; check Supervisor logs on device with 'balena logs DEVICE_UUID --service supervisor' for download or apply errors.
Known gotchas
Devices on a metered or slow connection can be disrupted by large image downloads; use the delta updates feature (enabled by default) to send only changed layers.
The balena Supervisor requires an active cloud connection to receive new releases; devices offline during a rollout update as soon as they reconnect, regardless of deployment age.
Service environment variables set via the dashboard are injected at runtime and do not require a new release; use them for secrets rather than baking values into the image.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp