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.
- Version — enter a semver string (e.g.
1.0.0). The field is pre-filled with a suggested version number. - Compose YAML — an editor pre-filled with a starter template. Paste or edit your own Docker Compose file.
- Docker Login Secrets — if you added private-registry credentials in the previous step, select which ones this version should use.
- Image version helpers — detected image tags from the Compose YAML appear here. Edit a tag (e.g. change
alpinetov1.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:
| Column | Description |
|---|---|
| Device | The device name |
| State | Current deployment state (e.g. pending, running, failed) |
| Error | Error details if deployment failed |
| Updated | Timestamp 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:
- Click Create version and enter a higher semver (e.g.
1.1.0). - Adjust the Compose YAML and image tags as needed.
- 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.