How to install a package on 50* Linux devices at once
Install or remove an apt package, or your own .deb file, on many Ubuntu, Debian and Raspberry Pi devices at once from one dashboard, without SSH, and see what apt did on each device.
Works on Ubuntu 22.04, 24.04 and 26.04, Debian 12 and 13, and Raspberry Pi OS, on amd64, arm64 and armhf. Last checked 2026-10-31.
Why installing one package on a fleet is harder than it sounds
One apt install is easy. On fifty devices some are offline, some hold the apt lock, and your own .deb is in no repository at all, so it has to be copied to each device first.
With KinuxOTA, a small agent on each device (gateways, kiosks, servers and Raspberry Pis) connects out to one web dashboard. You start it 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
- Linux devices: Ubuntu 22.04, 24.04 and 26.04, Debian 12 and 13, and Raspberry Pi OS, on amd64, arm64 and armhf.
- sudo on each device once, to install the agent, and an outgoing internet connection.
- A free KinuxOTA account.
Install a package on all your devices, step by step
1. Create a free account
Sign up at https://www.kinuxota.com/signup/ and confirm your email address.
2. Install the agent on every Linux 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. A package from the distribution: a two-line script
Open Scripts, click New script, start blank and write the install. Pin a version (htop=3.3.0-4) when every device must get the same one. apt-get update; apt-get install -y htop
apt-get update apt-get install -y htop4. Your own .deb files: the Install a .deb template
Click New script, choose Template, pick Install a .deb and upload your .deb files into it. On each device the files are checksum-verified, then apt installs them and the packages they depend on.
5. Run it on all your devices
Click Run, then Select all online (up to 100 per run) and Run on N devices. Devices that are offline install it when they come back, within the waiting time you choose.
6. 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 working and what each one printed.

7. Remove a package the same way
A script with apt-get remove does the opposite on every device. On a single device, the device's Package Manager tab lists every installed package and its version and can install, update or remove them one by one. apt-get remove -y htop
apt-get remove -y htop8. Re-run only the devices that failed
A device that failed shows Failed with its exit code and the reason in its output. Fix the cause and click Re-run failed: the script runs again on those devices only.
Before you install on many devices
One .deb per architecture
A .deb is built for one architecture (amd64, arm64 or armhf), and installing the wrong one fails. For a mixed fleet, make one script per architecture and run each on its devices.
The apt lock
Ubuntu's unattended-upgrades may hold the apt lock when your script starts; those devices fail with "Could not get lock". Re-run failed a few minutes later installs on them.
Configuration prompts
Some packages ask questions while they install. Scripts run without a terminal, so set DEBIAN_FRONTEND=noninteractive (the templates do) or preseed the answers.
Frequently asked questions
Can I see which version each device has?
On a device, the Package Manager tab lists every package with its version. For the whole fleet, run dpkg-query -W htop on all devices and read each device's output.
Does KinuxOTA host my packages?
Your .deb files are stored with the script (up to 250 MB per script, 1 GB per account) and sent to the devices with it. There is no package repository for your own packages yet.
Can I do this on 10, 100 or 1,000 Linux devices?
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 it 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 it 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.