Ship software to your robots
without the fear

Armada delivers over-the-air updates to robotics fleets with cryptographic verification, automatic rollback, and real-time fleet visibility. Built on NixOS for reproducible, delta-efficient deployments.

View on GitHub See How It Works
$ armada deploy --version 2.1.0 --target robot-001
triggered  Deploy main-8f3a21b0 to robot-001
nix_copy  Transferring delta closure (47 MB / 2.1 GB total)
reboot   Switching to new generation...
healthy   3/3 health checks passed in 23s
success   Deployment confirmed. robot-001 running v2.1.0
$ armada deploy --version bad-3.0 --target robot-001
triggered  Deploy main-ff10c2a1 to robot-001
nix_copy  Transferring delta closure (12 MB)
reboot   Switching to new generation...
timeout   ROS2 liveness check failed after 90s
rollback  Reverting to previous generation...
restored  robot-001 back on v2.1.0. No operator action needed.
<90s
Automatic rollback
SHA-256
Deployment identity
0
External dependencies on device

Fleet visibility at a glance

See every device, every deployment, every event. The dashboard polls the control plane every 5 seconds so you never miss a rollback.

localhost:5173
Connected · 2s ago
Armada
Connected · Last updated 2s ago

Fleet (3)

robot-001 healthy
sha:8f3a21b0c4e7
Last seen: 3s ago
robot-002 updating
sha:ff10c2a19b33
Last seen: 1s ago
robot-003 rolled-back
sha:a29c0f4d11e8
Last seen: 5s ago

Deployments

bad-3.0 failed 97s
2m ago
14:32:01 triggered
14:32:03 nix_copy_started
14:32:18 nix_copy_done
14:32:19 reboot
14:33:49 watchdog_timeout — ROS2 liveness check failed after 90s
14:33:50 rollback
14:33:53 restored — Back on previous generation
main-8f3a21b0 success 47s
15m ago
14:17:02 triggered
14:17:04 nix_copy_done
14:17:25 reboot
14:17:49 healthy — 3/3 health checks passed

Everything you need for safe fleet updates

Built for teams who ship software to physical robots and can't afford to drive out and fix a bricked device.

🔒

Cryptographic Verification

Every deployment is a Nix store path — a SHA-256 hash of all build inputs. The device's running state and the desired state are compared by a single string. No ambiguity, no drift.

🔄

Autonomous Rollback

The on-device watchdog has a 90-second health window. If the new software doesn't report healthy, the device reverts to the previous generation automatically. No network required.

Delta-Efficient Transfers

Nix computes the set difference between what's on the device and what needs to be. Only missing store paths are transferred. A typical update sends 2-5% of the full closure.

📊

Real-Time Fleet Dashboard

Watch every deployment event as it happens: nix copy progress, reboot, health checks, rollbacks. Full event timeline for post-mortem debugging.

⚙️

Reproducible Builds

NixOS captures every library, kernel module, CUDA version, and ROS2 package in the deployment hash. No runtime dependency resolution. What you build is exactly what runs.

🛡️

Mission Lock

Robots in the field can signal they're on a critical mission. Armada won't interrupt. When the mission completes, updates resume automatically.

From git push to running on the robot

A deliberately simple protocol. No agents phoning home to a complex orchestrator. Just a store path comparison and a reboot.

1

Build

Push to main. CI builds the NixOS closure and pushes the artifact to the binary cache.

2

Deploy

Roll out to the entire fleet, A/B test across a subset, or target a single device. One click from the dashboard.

3

Pull

Each device detects the new version, downloads only what changed, and reboots into the update.

4

Verify

The device confirms the new software is healthy. If anything goes wrong, it automatically rolls back — no network or operator needed.

Rollback requires zero network connectivity

Three tiers, zero magic

Every component is replaceable. The agent and watchdog are stdlib-only Go binaries. The control plane is a FastAPI app. The dashboard is React.

CI / BUILD GitHub Actions Build & cache artifacts for the robot fleet CONTROL PLANE API + Dashboard Fleet state, deployments, and operator controls ROBOT (NixOS) Agent + Watchdog Pulls updates, verifies health, auto-rollback publish desired status DATA FLOW 1. Build CI builds & caches   2. Deploy Operator triggers rollout 3. Pull Device downloads delta 4. Verify Healthy or auto-rollback

Ready to stop worrying about fleet updates?

Armada is open source. Clone the repo and deploy to your first Jetson in an afternoon.

Get Started on GitHub