Simple edge container operations

Docker Compose for your entire fleet.

Deploy, update, monitor, and roll back Docker applications across Raspberry Pis, mini PCs, and Linux edge devices. No Kubernetes. No inbound firewall holes. No mandatory proprietary OS.

curl -fsSL https://simpledockerops.com/install | sudo sh
  • Keep your Linux and your Docker Engine
  • Releases pinned to image digests
  • Health gates and rollback on every plan
warehouse-gw-04Raspberry Pi 5 · arm64
Healthy
Desired
collector 1.8.4
Actual
collector 1.8.4
Docker
29.0.2
CPU
12%
RAM
43%
Disk
31%
Temp
48 °C
Uptime
38 d
Last deploy
2 d ago
collector1.8.4healthy
mqtt2.0.22healthy
watchdog2.1.0healthy
LogsDiagnosticsRestart appDeployRoll back
Git → image → release → fleet → health gate → rollback

From a working Compose file to a managed fleet

Docker made packaging easy and Compose made one machine easy. The problem starts at the twelfth device. That is the whole product.

  1. 1

    Install the agent

    One command on any Debian-style Linux with Docker. The agent prints a pairing code and connects outbound. Nothing listens.

  2. 2

    Cut a release

    Paste the docker-compose.yml you already run. Images are resolved to digests and checked for ARM64 and x86_64 before anything ships.

  3. 3

    Deploy with a gate

    Test fleet first, then 10 percent, then everyone. Each wave waits for health. A failure pauses the rollout or rolls it back.

Why it is different

Built for the fleet that is too small for Balena and too real for scripts

Compose-first

Your deployment artifact is docker-compose.yml. No proprietary manifest, no Helm, no operator.

Desired state

The control plane stores the intended release; the agent pulls and reconciles. Offline devices converge when they return.

Edge-aware

Temperature, throttling, disk, architecture, Docker version, clock health. SBCs fail differently from VMs; we watch for that.

Safe releases

Digest pinning, architecture preflight, canary waves, health gates, automatic halt, one-click rollback.

Outbound-only

Per-device credentials over one TLS connection. No SSH keys on the fleet, no inbound ports, no VPN.

Small-fleet economics

Five devices free. 25 for $10. 100 for $25. Priced for the company with one box at each customer.

Deployment safety

A broken release at 50 remote sites is a truck roll. We are conservative on purpose.

Every deployment runs through validation and waves. Health means the application works, not just that the container started.

  • Architecture validation against every target device before the first wave.
  • Compose validation and registry access check at release time.
  • Waves with configurable percentages, max parallel devices, and minimum healthy time.
  • Container healthchecks plus HTTP and TCP probes evaluated on the device.
  • Failure threshold pauses the rollout or rolls back affected devices.
  • Offline devices receive the release when they return; deadlines keep rollouts honest.
Release collector 1.8.4
  ├─ architecture validation      ✓ linux/arm64, linux/amd64
  ├─ compose validation           ✓ 3 services
  └─ registry access check        ✓ ghcr.io/acme

  test fleet (2 devices) ─── health gate ✓ 2/2 healthy, 120 s
  10% production (4)    ─── health gate ✓ 4/4
  25% production (9)    ─── health gate ✗ 1 failed (threshold 10%)
                             rollout paused · 1 device rolled back
                             [Resume] [Roll back all] [Inspect logs]
Compare

Where Simple Docker Ops sits

SSH + scriptsBalena / Qbee / MenderPortainerSimple Docker Ops
Deployment artifactWhatever you wrotePlatform-specific or OTA imageStacks in a server UIYour docker-compose.yml
Offline devicesScript failsHandledHost must be reachableDesired state, reconciled on reconnect
Staged rollout + rollbackManualYesLimitedWaves, health gates, one-click rollback
Host OSYoursOften proprietaryYoursYours
Price at 30 devicesYour evenings$34 to $159+ /mo~$105 /mo commercial$25 /mo

Full comparison

Pricing

Transparent tiers for 5 to 500 devices

Managed registry storage included. No per-seat pricing, no sales call to see the numbers.

Free

$0/mo

5 devices · 5 GB registry

Homelab, evaluation, tiny prototypes.

Developer

$10/mo

25 devices · 25 GB registry

Independent developer or a tiny commercial fleet.

Fleet

$75/mo

500 devices · 500 GB registry

Growing commercial fleet or MSP.

Compare plans in detail

Common questions

Do I need to install a custom OS?

No. Keep Debian, Ubuntu, Raspberry Pi OS, or Armbian and your existing Docker Engine. One command installs a small agent that connects outbound to the control plane. Nothing listens on the device.

Is this Kubernetes?

No, and it never will be. Your deployment artifact is the docker-compose.yml you already have. We add releases, fleets, staged rollouts, health gates, and rollback around it.

What happens when a device is offline during a rollout?

The desired release waits for it. When the device reconnects it reconciles, reports health, and the rollout accounts for it. Nothing is half-applied: the agent treats each release as a transaction and reconciles on startup after power loss.

How do you handle ARM and x86 in one fleet?

Every release resolves its images to OCI digests and records which platforms each image provides. A release that lacks linux/arm64 cannot be deployed to an ARM64 device; you find out before the rollout, not from an exec format error on site.

Where do secrets live?

Encrypted at rest in the control plane, scoped to an organisation, fleet, device, or application, masked in the UI, and delivered to the agent over the authenticated channel only when a release needs them.

Can the agent open a shell on my device?

Not in the current release. Commands are limited to restart, logs, diagnostics, and prune. A short-lived, audited terminal is on the roadmap and will require explicit authorisation each time.

What does it cost for 30 devices?

The Team plan at $25 per month covers 100 devices and 100 GB of managed registry. Balena starts at $159 for 30 devices; Portainer commercial starts around $105. We are built for the fleet that is too small for those.

Add your first device free.

Five devices and five gigabytes of registry on the Free plan. No card, no sales call, no Kubernetes.

curl -fsSL https://simpledockerops.com/install | sudo sh