diff --git a/assets/tutorials/maiv/maiv_front.avif b/assets/tutorials/maiv/maiv_front.avif new file mode 100644 index 0000000000..684aa23cd3 Binary files /dev/null and b/assets/tutorials/maiv/maiv_front.avif differ diff --git a/docs/use-cases/deploy-code.md b/docs/use-cases/deploy-code.md index 824d58a1b3..05a7205217 100644 --- a/docs/use-cases/deploy-code.md +++ b/docs/use-cases/deploy-code.md @@ -1,8 +1,73 @@ --- -title: "Manage and deploy code versions for an existing machine" +title: "Manage and deploy code versions" linkTitle: "Manage and deploy code versions" -weight: 40 type: "docs" -layout: "empty" -canonical: "registry/" +weight: 30 +description: "Deploy and manage module versions as public or private resources with the Viam CLI." --- + +While Viam provides built-in support for a variety of components and services, you can use {{< glossary_tooltip term_id="module" text="modules" >}} to extend support for any hardware components or software services, across both industrial and consumer domains, whether proprietary or not. + +Modules allow you to write and deploy custom code to your machine or fleet of machines, with robust control over how changes to your module's code are distributed to deployed machines. + +You can choose to develop your module locally, and deploy to your machine directly using a local module installation, or you can upload your module to the Viam registry, making it easy to deploy to all of your machines. +Further, you can determine the accessibility of your module when you upload it - either keeping it private for exclusive access within your organization or making it public for availability to all Viam users. + +When you deploy a module, whether its one you've written yourself or added from the registry, you maintain complete control over how that module's code is deployed to your machine when new updates to the module are available. + +
{{ + Once you have created a machine in the Viam app, search for modules in the Viam registry that fit your machine's requirements, and then add a module from your machine's configuration page in the Viam app. + |
+
---|
{{ + Or, you can create your own module to add support for new hardware, or to extend an existing software service. + |
+
{{ + Once you have created your new module, you can deploy it to your machine in one of two ways: +
If your machine is offline when you deploy a module, it will deploy once your machine comes back online. + |
+
{{ + Once you've deployed a module to your machine or fleet, configure the module to set any necessary attributes it may require. +You can also configure how a deployed module updates itself when new versions of that module become available from the Viam registry. You can choose to always update to the latest version as soon as it becomes available, pin to a specific code revision and never update it, or upgrade only within a specified major or minor version. + |
+
{{ + When you make code changes to your module, you can update your module with those changes using the Viam CLI. You can also use a GitHub action to automate module releases as part of a continuous integration (CI) workflow. +These options make it easy to push changes to a fleet of machines. + |
+