Skip to main content
The Releases page lets you define something once and roll it out to any number of devices — either a Docker Compose stack, or an arbitrary shell command/script.

Release types

Compose

A docker-compose.yml, deployed and managed with docker compose -p iotmanager on the target device. Requires Docker + Docker Compose already installed on the device — see Prerequisites.

Bash

An arbitrary shell script or command, run directly on the device. No Docker required — works on any registered device.

Deploying online

If the device is online (connected via its reverse tunnel), deploying is immediate:
  1. Open a release from the Releases page and click Deploy.
  2. Select which device(s) to deploy to.
  3. Confirm — IoT Manager connects to each selected device and applies the release.
For Compose releases, this writes the compose file to the device and runs docker compose -p iotmanager up -d, tearing down the previous deployment first to avoid container name conflicts. Named volumes are automatically marked external: true to prevent Docker Compose from complaining about label ownership across deploys.

Deploying offline (air-gapped devices)

If a device has no internet access at all, see Offline Use — Compose releases can be packaged into a self-contained bundle (compose file + pre-pulled Docker images) and installed locally through the device’s own web UI, no cloud connectivity required for the device itself.

Checking status

Each device shows its current running release, plus a health indicator:
  • Healthy — containers are running normally.
  • Unhealthy — Docker reports at least one container in a restart loop.
  • A container that’s intentionally stopped (Exited) is not treated as unhealthy.

Viewing logs

Container logs and status are visible per-device from the dashboard without needing to open a terminal — use Remote Access’s terminal if you need to go deeper (running arbitrary commands, checking files, etc).