Skip to content

Deploying Your Application

Once you have built and pushed your Docker image to a container registry, you can deploy it to the Mesh of Things platform. The deployment process involves creating an app, adding versioned Compose definitions, assigning devices, and promoting a version to roll out.

Step 1: Create an App

  • Log in to the Mesh of Things dashboard.
  • Navigate to the Apps page.
  • Click Create app.
  • Enter a name for your application and click Create app.

The Apps list shows each app's active version, number of assigned devices, and last updated timestamp.

Step 2: Add Variables and Secrets

Before creating your first version, switch to the Variables & Secrets tab inside your app. This is where you manage values that your Compose file can reference.

Environment Variables and Secrets

Add key-value pairs one at a time. Choose the type when creating each entry:

  • Environment Variable — values remain visible after saving.
  • Secret — values are write-only; they cannot be read back after saving.

Docker Login Secrets

If your images live in a private registry, add credentials here so the platform can pull them during deployment. Each login requires:

  • Registry host (e.g. ghcr.io)
  • Username
  • Password / token
  • Label (optional, for your own reference)

Docker Login Secrets are selected per version, so different versions can use different registry credentials.

Step 3: Create a Version

Click Create version at the top of the app detail page.

  1. Version — enter a semver string (e.g. 1.0.0). The field is pre-filled with a suggested version number.
  2. Compose YAML — an editor pre-filled with a starter template. Paste or edit your own Docker Compose file.
  3. Docker Login Secrets — if you added private-registry credentials in the previous step, select which ones this version should use.
  4. Image version helpers — detected image tags from the Compose YAML appear here. Edit a tag (e.g. change alpine to v1.0.0) and the Compose YAML updates automatically.

Click Validate to check the Compose YAML for errors, then Save version to store it.

Each saved version appears in the Versions table with its semver, a content checksum, and the creation timestamp.

Step 4: Assign Devices

Switch to the Device assignments tab. From here you can search, filter, and sort your fleet, then select which devices should run this app.

  • Use the Filter dropdown to show Assigned, Unassigned, or All devices.
  • Select one or more devices and click Assign selected devices.

You can also assign devices to an app during device creation from the Add device dialog on the Devices page.

Step 5: Promote a Version

Back on the Versions & status tab, click Promote next to the version you want to activate. Promoting a version makes it the active version for this app and begins rolling it out to all assigned devices.

You can also View YAML to review a version's Compose definition, or Delete a version you no longer need.

Monitoring Rollout

The Deployment status section on the Versions & status tab tracks rollout progress. Each assigned device shows:

ColumnDescription
DeviceThe device name
StateCurrent deployment state (e.g. pending, running, failed)
ErrorError details if deployment failed
UpdatedTimestamp of the last state change

If some devices fail to deploy, click Retry failed devices to re-attempt the rollout on those devices.

Updating an App

To push a new version to devices that already have an older one:

  1. Click Create version and enter a higher semver (e.g. 1.1.0).
  2. Adjust the Compose YAML and image tags as needed.
  3. Save version, then Promote it.

The platform will roll the new version out to all assigned devices, replacing the previously active version. You can track progress in the Deployment status table.