While a lot of the core tools for irdest already exist, the user-facing applications are mostly still prototypes. Following is a list of supported clients/ platforms with instructions on how to build, and configure them.
|Client name||Desktop platforms||Mobile platform||Version|
While it is possible to install dependencies with platform specific
tools (such as
apt on Debian, etc), it is far more recommended to
use nix to build irdest instead.
Follow the instructions on how to install nix on your platform here
shell.nix in the irdest repo root defines dependencies. Fetch
them into your environment by running
nix-shell in the repo root
(this might take a while).
Afterwards you can simple run
cargo build --bin irdest-hubd --release to build a new hubd binary.
The output artifact will be written to
This manual is part of the main source repository and you can build it from the same nix environment as the rest of the project.
$ cd docs/users $ mdbook build
If you want to enable live-reloading to work on this manual, you can also use the dev server.
$ mdbook serve
This is a multi-purpose headless client, meaning that it runs as a daemon in the background of your system. It bundles the irdest router, database, core services, and RPC broker.
Hubd doesn't come with its own user interface, which means you need to install one yourself. Currently recommended is irdest-gtk.
Hubd does not require administrative privileges.
qaul-hubd with nix is recommended! If you
need to build via system dependencies, follow this guide, depending on
You will need to have a Rust compiler, and cargo toolchain installed
on your system (minimum version
v1.42). Install instructions
On MacOS you will need to install a package manager first to install all the developer tools. Alternatively you can also get them by downloading XCode from the App Store.
Homebrew is a popular package manager for MacOS!
You need to install a general development environment with the following tools available.
- Debian/ Ubuntu/ Mint:
sudo apt install make gcc cmake git
- Fedora/ CentOS:
sudo dnf install make gcc cmake git
- Arch Linux:
sudo pacman -Sy make gcc cmake git
brew install make gcc cmake git
Clone the main code repo:
$ git clone https://git.irde.st/we/irdest $ cd qaul/
Then simply run
cargo build --bin qaul-hubd --release to build the
The output artefact will be written to
In order for
irdest-hubd to work properly it will have to run in the
background to handle incoming and outgoing network connections. It's
recommended to launch it via a user systemd unit.
[Unit] Description=irdest hub daemon After=network.target [Service] Type=simple ExecStart=$HOME/bin/irdest-hubd <your parameters here>
Save this file in
Now you can reload the daemon and start the unit.
$ systemctl daemon-reload --user $ systemctl enable --user irdest-hubd.service $ systemctl start --user irdest-hubd.service
Following is a list of irdest-hubd configuration values. Those marked
* are mandatory. Commandline arguments take precedence over
|ENV variable||Runtime argument||Description|
|-P / --peers [PATH]||Specify the path to a peer file, containing a newline-separated list of peers to connect to|
|-p / --port [PORT]||Specify a tcp port to which irdest-hubd should bind itself to listen for incoming network traffic|
|HUBD_UDP_DISCOVERY=0||--no-udp-discover||Prevent irdest-hubd from registering a multicast address to find other clients on the same network. Some networks may forbid this, or cause performance issues.|
|HUBD_SETUP_UPNP=0||--no-upnp||Disable automatic UPNP port forwarding. Some networks may forbid this, or cause performance issues.|
|HUBD_RUN_MODE=[MODE]||-m / --mode [MODE]||Specify the peering mode of this hub. Possible values: "static", "dynamic"|
|HUBD_ADDR=[ADDR]||-a / --addr [ADDR]||A valid address to bind to. Must be a valid ip address format.|