Once you have built an ArkOS image into some location (for example, if you have built it into ~/arkos-image), then you have a few choices in how you deploy it.

The ArkOS deployment system relies on the same infrastructure as the software deployment system (namely, the Ark Platform Supervisor). It is assumed that this is running on the host that you are deploying ArkOS to.

Deploying from Local Machine

It is possible to deploy ArkOS to a remote host (already running ArkOS) from your local machine, without going through any intermediate. Run this command:

~$ ./ark/arkos/install-remotely $<REMOTE_HOST_IP:8081> ~/arkos-image

This will install the created image (within ~/arkos-image) to the remote host, which will then reboot into the new image.

Deploying from Catalog

You can deploy prebuilt images from the Catalog to a remote host (again, already running ArkOS) by requesting that the remote host download and install the image itself. For example, if you wanted to deploy an image identified with the GUID 312a572b-937e-4bda-b607-264b4d727a92:

~$ ./build/ark-supervisor-tool --host $<REMOTE_HOST_IP:8081> --deploy-arkos-specific 312a572b-937e-4bda-b607-264b4d727a92 

This will cause the remote Supervisor to fetch the ArkOS release located at that GUID, unpack it, and then reboot into it.

Uploading a Release to Catalog

You can upload your own releases to catalog by using the create-release tool:

~$ ./ark/arkos/create-release ~/arkos-image

This will package up the release located in ~/arkos-image and then upload it to the Catalog, returning the GUID of the artifact you can deploy.

Note that the artifact will be uploaded to the organization that the image was built with (so, if the image should be private, ensure that you have built it with a private organization).