Previous
API
You have a single machine working. Now you need 10, or 100, or 1,000 machines running the same software with the same configuration. Fleet deployment is how you get there without configuring each machine by hand.
Viam’s fleet deployment is built on three mechanisms that work together:
A fragment is a reusable block of configuration. You define the components, services, modules, and settings a machine needs in a fragment, then apply that fragment to every machine in your fleet. When you update the fragment, every machine that uses it receives the change.
Fragments support variables for per-machine customization (different sensor names, different thresholds), version tags for controlled rollouts (test on a few machines before deploying to the full fleet), and overrides for device-specific adjustments that differ from the template.
For machines you ship to customers or deploy in the field, provisioning automates the first-boot experience. You install viam-agent on a device during manufacturing with a defaults file that specifies which fragment to use. When someone powers on the device, viam-agent creates a WiFi hotspot or Bluetooth connection, the user provides network credentials through a mobile app or captive portal, and the machine configures itself from the fragment automatically.
Modules and ML models are stored as versioned packages in the Viam registry. When you configure a module or model on a machine (directly or through a fragment), the machine downloads the correct version for its platform. When you upload a new version, machines configured to track that version update automatically. Maintenance windows let you control when updates happen so machines are not interrupted during operation.
| Task | Guide |
|---|---|
| Create reusable configuration templates | Reuse configuration with fragments |
| Set up automated device provisioning | Provision devices |
| Help end users connect new devices to WiFi | End-user device setup |
| Deploy modules to machines over the air | Deploy software |
| Deploy ML models across your fleet | Deploy ML models |
| Control when and how software updates reach machines | Manage versions |
| Schedule automated tasks on machines | Schedule jobs |
| Tag machines with custom key-value data | Add custom metadata |
| Configure network, tunneling, and system settings | System settings |
| Change a deployed machine’s WiFi network | Change network |
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!