How to update 50* Raspberry Pi devices at once

Update every Raspberry Pi at once from one dashboard, without SSH or a VPN: install a small agent on Raspberry Pi OS (64-bit or 32-bit), run the Update packages script on every Pi, watch the output and re-run only the ones that failed.

Works on Raspberry Pi OS 64-bit (Pi 3, 4, 5) and 32-bit (Pi 2, 3, 4, Zero 2 W), on arm64 and armhf. Last checked 2026-10-31.

Why updating Raspberry Pi OS devices one by one does not scale

A Raspberry Pi fleet grows one board at a time: a display here, a sensor there, each on a different network. Updating them means finding each one's address and running apt over SSH, and the ones on Wi-Fi behind a router are hard to reach at all.

With KinuxOTA, a small agent on each device (signage players, sensors, kiosks and lab boards) connects out to one web dashboard. You start the update once, on every device, and see the result of each one: no SSH, no open ports, no VPN and no inventory file to keep up to date.

What you need

  • Raspberry Pi OS devices: Raspberry Pi OS 64-bit (Pi 3, 4, 5) and 32-bit (Pi 2, 3, 4, Zero 2 W), on arm64 and armhf.
  • sudo on each device once, to install the agent, and an outgoing internet connection.
  • A free KinuxOTA account.

Update all your Raspberry Pi OS devices, step by step

  1. 1. Create a free account

    Sign up at https://www.kinuxota.com/signup/ and confirm your email address.

  2. 2. Install the agent on every Raspberry Pi OS device

    In the dashboard, click Add device, give the device a name and copy the install command it shows. Run it on the device: it adds the signed KinuxOTA apt repository, installs the agent as a systemd service and enrolls the device with its own key. The device appears as Online within seconds. Repeat for each device.

    curl -fsSL https://www.kinuxota.com/install.sh | sudo sh -s -- --key <KEY>
  3. 3. Create the Update packages script

    Open Scripts, click New script, choose Template and pick Update packages. The script runs apt-get update, apt-get upgrade (keeping configuration files you changed) and apt-get autoremove, then says whether the device needs a reboot.

  4. 4. Run it on all your Raspberry Pi OS devices at once

    Click Run, then Select all online (or tick the devices you want, up to 100 per run). Turn on Reboot if required if the devices may restart, and click Run on N devices. Devices that are offline wait and update when they come back.

  5. 5. Watch every device's output live

    The run page shows each device's status, exit code and output as it arrives, so you see which devices are done, which are still upgrading and what apt printed on each.

    A KinuxOTA run page: the device list with each status, and the live output of one device
  6. 6. Re-run only the devices that failed

    A device whose update failed (no network, a held apt lock, a full disk) shows Failed with the reason in its output. Fix the cause and click Re-run failed: the update runs again on those devices only.

Before you update many Raspberry Pi OS devices

Power and SD cards

An upgrade writes a lot to the SD card. A Pi that loses power in the middle can be left with half-installed packages. Update Pis that are on stable power, and for important ones consider a good SD card or an SSD.

Firmware and kernel come through apt

On Raspberry Pi OS the kernel and the boot firmware are apt packages, so the Update packages script updates them too. Do not use rpi-update for this: it installs test firmware. A new kernel needs a reboot; set Reboot if required to restart each Pi that asks for it.

Pi 1 and the original Zero are not supported

The agent needs ARMv7 or newer. The Raspberry Pi 1, Zero and Zero W (ARMv6) cannot run it; every later model can, with the 64-bit or the 32-bit Raspberry Pi OS.

Frequently asked questions

Does it work on a Pi connected over Wi-Fi or mobile data?

Yes. The agent connects out to KinuxOTA, so the Pi needs no public address, open port or port forwarding. A Pi that is offline when you start the run updates when it comes back, within the waiting time you choose.

Which Raspberry Pi models are supported?

Every model with an ARMv7 or newer CPU: Pi 2, 3, 4, 5, 400 and Zero 2 W, on Raspberry Pi OS 64-bit (arm64) or 32-bit (armhf). Not the Pi 1, Zero and Zero W.

Can I update 10, 100 or 1,000 Raspberry Pi OS devices this way?

One run reaches up to 100 devices, and you can start as many runs as you need. During the pilot program an account can add up to 3 devices for now; the steps are the same for 3 devices or 300.

What happens to devices that are offline?

They do not fail the run. They show Waiting for device and run the update when they come online, within the waiting time you choose (1 hour, 1 day or 7 days); after that they show Expired.

Do I need SSH, open ports or a VPN?

No. The agent opens an outgoing TLS connection to KinuxOTA, so devices behind NAT and firewalls work without inbound ports, SSH or a VPN.

Can I run the update on a schedule?

Not yet: today you start each run yourself. Scheduled runs are not available.

Try it on your own devices

Free during the pilot. The full reference for scripts and runs is in the documentation.

* During the pilot program an account can add up to 3 devices for now. The steps are the same for 3 devices or 300.

The same guide for other platforms