Install the agent¶
The agent is one program, kinuxota, in a Debian package of the same name. It comes from the signed
KinuxOTA apt repository, https://apt.kinuxota.com, and connects to your account with the device's
API key. After that the device updates itself through apt (Update the agent).
Supported systems¶
| Architecture | Package | Distributions | Typical hardware |
|---|---|---|---|
| x86-64 | amd64 |
Ubuntu 22.04, 24.04, 26.04 · Debian 12, 13 | servers, PCs, virtual machines |
| ARM 64-bit | arm64 |
the same, and Raspberry Pi OS 64-bit (12 Bookworm, 13 Trixie) | Raspberry Pi 3, 4, 5 and other 64-bit ARM boards |
| ARM 32-bit (ARMv7+) | armhf |
the same, and Raspberry Pi OS 32-bit (12, 13) | Raspberry Pi 2, 3, 4 and Zero 2 W on a 32-bit system |
- Every release is tested on Ubuntu 22.04, 24.04, 26.04 and Debian 12, 13, on all three architectures. Raspberry Pi OS is based on Debian 12 and 13 and uses the same packages.
- No ARMv6: Raspberry Pi 1, Pi Zero and Pi Zero W. The installer stops with a message on these boards.
- The system must run systemd (all of the above do). The agent is the systemd service
kinuxota.
Network: what the device must reach (outbound only)
| Host | Port | For |
|---|---|---|
back.kinuxota.com |
443 (HTTPS) | the API: enrollment, commands, results |
mqtt.kinuxota.com |
27202 (MQTT over TLS) | live connection and command delivery |
apt.kinuxota.com |
443 (HTTPS) | install and updates |
www.kinuxota.com |
443 (HTTPS) | the installer script (only when you use it) |
1 Create the device in the dashboard¶
Devices → Add device → a name → Add device. The Set up step shows the install commands with the device's API key already in them: pick your Platform, then the Installer, apt or .deb file tab, and click Copy commands. Show the device key only shows the bare key.
The key is shown once
Only in this dialog. Keep it secret: it lets a program act as this device. During the pilot an account can have up to 3 devices.
2 Install and connect¶
Run one of these on the device (<API_KEY> is already filled in when you copy from the dashboard):
Checks the distribution and the architecture, adds the KinuxOTA apt repository and its key,
installs the kinuxota package and enrolls the device. Without --key it only installs and
tells you to run sudo kinuxota enroll --key <API_KEY>. Needs curl and root (sudo).
The same steps by hand: the repository key, the sources file, the package, the enrollment.
curl -fsSL https://apt.kinuxota.com/kinuxota.gpg | sudo tee /usr/share/keyrings/kinuxota.gpg >/dev/null
printf 'Types: deb\nURIs: https://apt.kinuxota.com\nSuites: stable\nComponents: main\nSigned-By: /usr/share/keyrings/kinuxota.gpg\n' | sudo tee /etc/apt/sources.list.d/kinuxota.sources >/dev/null
sudo apt update && sudo apt install -y kinuxota
sudo kinuxota enroll --key <API_KEY>
Identical on every supported distribution and architecture: apt picks the right package. It
writes two files: /usr/share/keyrings/kinuxota.gpg (the key that signs the repository) and
/etc/apt/sources.list.d/kinuxota.sources, exactly these five lines:
The Downloads page has the latest .deb for each
architecture with its SHA256 checksum. Copy it to the device, then:
The package adds the KinuxOTA repository itself (it ships the key and writes the sources file when it is missing), so this device updates through apt too.
3 Check the connection¶
enroll checks the key with the server, saves it and starts the agent. Within seconds the device is
ONLINE in the dashboard. On the device:
kinuxota status # enrollment, agent service and server connection (sudo shows more)
kinuxota version # the installed version
Still offline? Troubleshooting has a table for every status line.
Enroll options¶
| Option | What it does |
|---|---|
--key |
The 64-character API key. Also read from KINUXOTA_API_KEY, or asked for when missing. |
--server, --mqtt |
Only for a self-hosted server. Defaults: https://back.kinuxota.com, mqtts://mqtt.kinuxota.com:27202. |
--no-start |
Save the enrollment without starting the agent. |
Run enroll again with another key to move the device to another device entry or account.