Update 57: The Finale (Part 2, the Orchestrator)
about 1 month ago
– Thu, Aug 27, 2026 at 10:52:47 AM
Uptime Orchestrator
Over the past few months, the project has undergone significant refinements and has been deployed to a cloud server. It is now ready for a full-scale beta test.
But first, let me explain what it has become. The original plan was to use it to manage a Kubernetes cluster based on Compute Blade. Now, it’s essentially an MDM server for Raspberry Pi devices.
Its unique feature is a device recovery mode that uses a trusted OS, which is booted over the network into the device’s RAM. In this mode, you have full control over your device and can completely reinstall or restore the OS on the primary storage. The main thing is that, for recovery mode, the primary storage doesn't need to have an operating system or even work at all. The primary storage device can be a USB drive, SD card, NVMe, SSD, or even an HDD. Perhaps in the future, we won't need a main storage system at all, but let's not get ahead of ourselves.
I’ll briefly describe how it works: The Orchestrator flashes your Raspberry Pi’s EEPROM with a signed image; then, when the Raspberry Pi boots up, it contacts the server to request the image - if the server provides it, the Raspberry Pi boots into recovery mode. If not, it boots into the local OS (Of course, things are much more complicated under the hood, but I won’t go into the details right now).
And that's just the tip of the iceberg
I’ll share a few things I want to highlight in this announcement, but these are by no means all of the orchestrator’s capabilities. What’s more, development is ongoing, and the backlog is full of new features. Stability and security are our top priorities. That said, I’ll be honest: sometimes things stop working due to the rapid pace of development and constant AI-powered audits designed to detect bugs and security vulnerabilities. But that’s what the beta is for.
Let's start by looking at how to add a node to the system.
There are several options available; the simplest is to add an existing device with a single command. Alternatively, you can create a master image to deploy on an SD card, and all new devices will appear in your admin panel, awaiting approval.
You can also simply flash the Raspberry Pi (in Bootloader mode and connected via USB) directly from your browser.
A device that’s already been set up with the agent offers a wide range of metrics and possible actions.
Here, I’d like to highlight just a few things:
The ability to specify the platform or HATs being used (in the case of the Raspberry Pi 4/5).
Right now, the focus is on the Compute Blade, but more is to come.
There are also more technical tasks that can be done with literally a single click. For example, overclocking the processor or enabling Watchdog, which will reboot your device if the conditions you specify are met.
Oh, the interface shown above is just a cropped version.
Actually, we have a whole lot of stuff
When developing this product, I drew on my experience as a system administrator and my familiarity with various user interfaces. However, I don't think this is yet the final form of Orchestrator in terms of the UI.
We have classic OUs here, with the ability to assign policies to them. Overall, assigning policies, permissions, credentials, and utilities based on OUs is a great practice. It makes it easy to add new nodes or replace existing ones.
You can use traditional passwords, SSH keys, and even keys issued by a CA
Store secrets, variable environments, and node attributes. Attributes are needed to make a node unique and to store that uniqueness on the server. This way, you can replace one device with another and transfer the attributes. This might seem like a narrow use case for now, but I hope it will become a little clearer later on why this is necessary
The Operations tab is a whole world of setting up blank devices and backups. And what’s even more interesting is creating golden images. Why? In the world of CI/CD, you sometimes need to completely reinstall a device - and ideally, you want it to have the latest OS.
The orchestrator can take a snapshot of a node on a schedule - creating a hardware-independent image from it - and then deploy it to specified devices. Even to the entire fleet. And the attributes mentioned earlier allow you to automatically customize the nodes in your farm after deployment.
All operations are based on playbooks. I've added a few templates and plan to upload more to GitHub in the future.
You can run playbooks on either a single device or an entire group of devices.
And here’s another feature I wanted to share here (though it’s far from the last on the list)
the utilities.
With Playbook, you can flash an image or even install software. Using the “Utilities” tab, you can more flexibly manage the software or settings on the devices themselves.
Here’s a specific example:
kiosk mode with a specific link in the browser. If you want to display a web page on several of your devices, you can do it in just a few clicks.
The displayed link can be specified explicitly or can be an attribute; in this way, it can be unique not only for the OU but also for each node.
Another useful tool is Tailscale; with a single command (you'll need to add your key), you can add all your devices to your Tailscale dashboard—all you have to do is approve them.
And, of course, there are logs and device status monitoring. Right from here, you can update the agent or even the bootloader across your entire fleet.
You’re probably looking at all this, and I’m sure some of you are wondering, “What’s the point?” Especially if you only have 1 or 2 devices in your setup.
Well, from my perspective, the recovery functionality alone will be useful to everyone.
Whether it’s a Raspberry Pi serving as a smart home server or a garage door controller. If its storage fails, you’ll still be able to connect to it and perform basic debugging via SSH, and I think that covers half the cases (if not more) - where you’d otherwise be forced to physically access the device, connect a monitor, and so on. And when it comes to a remote device, this is a real lifesaver.
All right, I hope I’ve piqued your interest a bit. Let’s move on to the numbers and details.
1. This is usually the last thing people cover, but here I’ll start by talking about monetization. I haven’t fully figured out what this will look like yet. Most likely, it’ll involve paid plans for 10 or more devices. Or maybe there will be limits on image storage on the server (which is already in place for beta users). And of course, premium plans for enterprises with custom pricing.
2. Open source? The project turned out to be incredibly complex, seriously. There’s a massive backend; images need to be signed, and devices need to know where to go. In short, I don’t plan on making it open source for now. However, the agent itself - the one that gets installed on devices - will be open source in the future.
3. How do I join the beta test?
The most important thing is that the beta version is the best way to improve the product. Please join us at this stage if, after reading all of the above, you're interested and would like to try it out on at least one device. Well, just be prepared for the possibility that some things might not work at all—because development is moving so fast, not everything is covered by tests, and some things (such as adding new devices) are extremely difficult to cover with tests right now, so we have to test them manually. Anyway, I hope everything will be okay.
So, if you're okay with that, go to https://app.orchestrator.sh and sign up with the beta invite code: beta-d0e09b99 (works for both email sign-up and "Continue with Google" - enter the code in the "Beta invite code" field). The number of invitations is currently limited. If it doesn't work, please try again in a few days. I'll gradually increase the limit
To connect a device: Nodes → Add Node → "One command" tab, generate the command and run it on the device as a user with sudo. It installs the agent and registers the device — it then appears in your account pending approval. The device only needs outbound internet; no port forwarding or VPN.
Approve the node, and you're set. Heads-up: to get SSH access to the device through the platform, add a user with your SSH key under Credentials first.
The one-command install works on Ubuntu/Debian-based ARM devices (Raspberry Pi 4/5, CM4/CM5, and similar). There are also USB-flash and SD-card flows for network-first provisioning — happy to walk you through those if you want them.
Even though I try to make the product intuitive, documentation is still necessary, and it will be added. Someday. But not today.
Feedback is the whole point of the beta:
- Bugs and feature requests: GitHub link
- Questions and chat: Discord
Leaving the beta / cleaning a device:
1. In the UI, delete the node first (Nodes → select the device → Delete). If it's still online, the platform also tells the agent to drop its adoption identity.
2. On the device, run:
curl -fsSL https://app.orchestrator.sh/uninstall.sh | sudo sh
This disarms the watchdog first (so nothing reboots mid-uninstall), then stops the agent and removes the package, its identity, and all its state.
3. SSH users and keys the platform configured are left in place by default, so you don't lose your way in. To remove those, too:
curl -fsSL https://app.orchestrator.sh/uninstall.sh | sudo sh -s -- --purge-access
It will refuse if that would leave no working login on the device.
4. When you're done with the beta entirely: Account → Request account deletion in the UI, and we'll purge the account and its data on our side.
One caveat: if your device was provisioned network-first (EEPROM flashed via USB or the SD card flow), the uninstaller doesn't touch the bootloader — reflash a stock EEPROM with rpi-eeprom-update afterward if you want the boot order fully back to default.
_________
Maybe for the last time here. With the deepest respect, and I tip my hat to you,
Ivan