Install hyveOS
Get hyved on your node. You have two options for installation on a node. Afterwards, you need to quickly configure the network interfaces for making B.A.T.M.A.N.-adv run. It is necessary to enable its running within the OS of the node that you are downloading hyveOS to.
Install in One Line
bash <(curl -ssL https://install.p2p.industries)This will run our installation script where everything is preconfigured for you. If you want to or need to have some more control, keep to the following 4 steps:
Install through APT Repository
-
Set up hyve
aptrepository:Terminal window wget -qO - https://apt.p2p.industries/key.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/p2p-industries.gpgecho "deb https://apt.p2p.industries /" | sudo tee /etc/apt/sources.list.d/p2p-industries.listsudo apt update && sudo apt upgrade -y -
Install
docker(If you need to):Terminal window curl -sSL https://get.docker.com | sh -
Install
B.A.T.M.A.N.-adv:Terminal window sudo apt install -y batctl -
Install
hyvedandhyvectl:Terminal window sudo apt install -y hyved hyvectl
Choose a WiFi network interface for the mesh
You need to choose a WiFi network interface for the mesh.
This interface will be configured using wpa_supplicant, so you have to ensure that it isn’t managed by any other networking service like Netplan or NetworkManager before continuing.
How to stop
On a default Raspberry Pi Ubuntu 24.04 installation, installed using the Raspberry Pi Imager, Netplan from managing the wlan0 interface on a default Raspberry Pi Ubuntu 24.04 installationNetplan is configured by cloud-init to manage the wlan0 interface.
To stop Netplan from managing the interface, you should be able to follow these steps:
-
Make sure, that you are either working on the device directly (e.g. with a keyboard and monitor connected to the Pi) or that you are connected over SSH using the ethernet port.
-
Check if
cloud-initis enabled:Terminal window sudo systemctl status cloud-initIf it is enabled, you should see something like
Active: activein the output. In that case, you can disable it permanently by creating an empty file at/etc/cloud/cloud-init.disabled:Terminal window sudo touch /etc/cloud/cloud-init.disabled -
Check, which network configuration files are present:
Terminal window ls /etc/netplanIf
cloud-initwas enabled, you should see a file called something like50-cloud-init.yaml. Otherwise, other configuration files might be present. Check, which of these files contains the configuration for thewlan0interface:Terminal window cat /etc/netplan/50-cloud-init.yaml# maybe cat other files as well, until you find the one with the `wlan0` configurationThe file should look somewhat like this:
network:version: 2wifis:renderer: networkdwlan0:access-points:SOME_SSID:password: SOME_PASSWORD_HASHdhcp4: trueoptional: trueethernets:eth0:dhcp4: true -
Remove the configuration for the
wlan0interface from the file:Terminal window sudo nano /etc/netplan/50-cloud-init.yamlRemove the section for the
wlan0interface. The example above would look like this after removing thewlan0section:network:version: 2ethernets:eth0:dhcp4: trueIf none of the configuration file you find in step 3 contains an ethernet configuration, but you are connected over ethernet, you might need to add an ethernet configuration like the one above, to keep the ethernet connection working.
-
Apply the changes:
Terminal window sudo netplan applyIf you are connected over SSH, you might lose the connection at this point. If you do, just try to reconnect after a few seconds. If reconnecting doesn’t work, you might need to restart the device.
Configure hyved before Running
Before you can run hyved, you need to configure it.
You can do this by editing /etc/hyved/config.toml,
which should at least configure the network interfaces (using the interfaces key).
In the following example, wlan0 is the wireless interface used for
the B.A.T.M.A.N.-adv mesh, and bat0 is the B.A.T.M.A.N.-adv virtual interface:
interfaces = ["bat0", "wlan0"]batman-interface = "bat0"Before running hyved you need to setup its prerequisites. The easiest way to do this is to use the provided systemd services:
sudo systemctl enable --now dockersudo systemctl enable --now wpa_supplicant@wlan0sudo systemctl enable --now hyveos-batman@wlan0sudo systemctl enable --now batman-neighbours-daemonStarting hyved
sudo systemctl start hyvedNow hyved is running on your machine.
Running hyved at Boot
If you want to run hyved at boot, enable the systemd service:
sudo systemctl enable --now hyvedAdding your user to the hyveos group
To run hyvectl without sudo, you need to add your user to the hyveos group:
sudo usermod -aG hyveos $USERVerify the installation
Verify your installation by running
hyvectl whoamiYou should see something like
🤖 You are { 12D3KooWJtoSLKL5H7GJsx9rExxwL4ZdckgX2ENagSHDrMSdxt7A }If it succeeds, that’s it! Your machine is ready to join multi-node swarms!
Continue with the Quickstart or learn about hyveOS concepts
© 2025 P2P Industries. This documentation is licensed under the MIT License.
Cookie Policy
Privacy Policy