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
apt
repository: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
hyved
andhyvectl
: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-init
is enabled:Terminal window sudo systemctl status cloud-initIf it is enabled, you should see something like
Active: active
in 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-init
was 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 thewlan0
interface: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
wlan0
interface from the file:Terminal window sudo nano /etc/netplan/50-cloud-init.yamlRemove the section for the
wlan0
interface. The example above would look like this after removing thewlan0
section: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-daemon
Starting hyved
sudo systemctl start hyved
Now 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 hyved
Adding 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 $USER
Verify the installation
Verify your installation by running
hyvectl whoami
You 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