Your Dockerfile
Build with docker build or BuildKit, exactly as you do today. Admiral runs the image you already ship.
Move to Admiral
Admiral runs the container image you already build. Flash one robot, run it next to your fleet, and move the rest when you are ready. No rewrite, no big-bang cutover.
What changes in your repo
Dockerfile unchanged
.github/workflows/ unchanged
src/ unchanged
+ fleet.yaml new · 12 lines
- scripts/ota-agent/ deleted
- ansible/ deleted
- vpn/ deletedIllustrative. Your repo, minus the parts you no longer have to own.
What you keep
Build with docker build or BuildKit, exactly as you do today. Admiral runs the image you already ship.
GHCR, ECR, Artifact Registry, Docker Hub, ACR, Harbor or Quay. Devices get short-lived pull tokens, never your secrets.
Push a tag, point a configuration at it, roll it out. No new build system, no Yocto layer to maintain.
ROS 2, DDS discovery, CUDA, SocketCAN, serial, V4L2 cameras and GPIO all run unchanged, with the full /dev tree.
The move
Create a configuration with the image you already publish. Add registry credentials if it is private.
image: ghcr.io/acme/autonomy:v2.14.0Create a fleet and a provisioning profile. Download one image for x86, ARM or RISC-V with enrolment built in.
acme-amr-installer.imgdd, Etcher or your factory jig. It installs, claims itself into the fleet and starts your workload on first boot.
sudo dd if=acme-amr-installer.img of=/dev/sdXRun the pilot alongside your existing fleet. When it holds up, move the rest with a canary rollout that rolls itself back if health checks fail.
admrl rollout create -f fleet.yaml --canary 1 --watchRobot for Hire moved Rocco, their Unitree G1 humanoid, onto Admiral and demonstrated it live at AWS the next day. Read the story →
What changes
Ubuntu + SSH + scripts
→Immutable OS with A/B updates
You stop maintaining the base image. Admiral owns boot, kernel and OS updates.
Your Wi-Fi manager
→Fleet networking settings
NetworkManager or wpa_supplicant wrappers move to config, so devices stay reachable even if the app crashes.
VPN or port forwarding
→Outbound-only access
ssh root@<device-id>.admrl works through the Admiral Mesh via the admrl CLI. No public IP, no inbound ports, no shared keys.
Keys baked into images
→Secret files
Certificates and credentials are delivered read-only to /admrl/secrets, out of your image and history.
Full detail in the platform boundary guide ↗
Coming from
Moving from
Ubuntu images, Ansible or shell scripts, a VPN and a custom update agent. Your app is probably already in a container, which is all Admiral needs. The scripts, agent and VPN become things you delete.
Moving from
Your services are already container images. Bring them as one workload: a single image can run a supervisor and several services, with full hardware access by default.
Moving from
Swap rootfs update artifacts for an OCI image. A/B partitions, signed updates and automatic rollback come built in, so there is no client to integrate or image layer to maintain.
Low risk by design
Questions teams ask
Usually not. Application code, robotics middleware and hardware control stay in your image. The common changes are moving Wi-Fi management into fleet networking and calling platform reboots instead of rebooting from inside the app.
Yes. Start with one device on the free tier, run it alongside your existing robots, and move the rest when you are ready. Nothing changes for devices you have not flashed.
The kernel enforces module signatures, so out-of-tree drivers are built with the Admiral kernel and shipped in your Admiral OS image. Tell us your board and drivers and we will scope it with you.
Your workload is a standard OCI image built with standard tools. It runs with docker on any Linux machine, today and after you leave.
Yes. Our engineers work through the first devices with you, from configuration to the first rollout. Design partners get hands-on onboarding as part of the program.
Move to Admiral
Start free with 5 devices, or tell us about your fleet and we'll plan the move with you.