Notice: GNUnet is still undergoing major development. It is largely not yet ready for usage beyond developers.

Please be aware that this project is still in an early alpha stage when it comes to running software – its not an easy task to rewrite the whole Internet! We are happy to get your helping hand anytime! Further information is available in our handbook. If you have any queries about the installation or the usage, please get in touch!

Binary packages

We recommend to use binary packages provided by the package manager integrated within your Operating System. GNUnet is reportedly available for at least:

If GNUnet is available for your Operating System and it is missing, send us feedback so that we can add it to this list. Furthermore, if you are interested in packaging GNUnet for your Operating System, get in touch with us at if you require help with this job. If you were using an Operating System with the APT package manager, GNUnet could be installed as simple as:

$ apt-get install gnunet

Please beware that some distributions may include outdated GNUnet packages!

From source

Next we describe a generic way to install from source. If you are using one of the following Operating Systems these step-by-step guides might be useful: ArchPi, Debian 9, Mac OS, NetBSD, Ubuntu 1804. Be aware that not all of them might be totally up-to-date! Please ask us if you get stuck.

First, install the required dependencies of GNUnet. There are base requirements and optional requirements.

Now, you need to decide if you want to install GNUnet from the release tarball or from git. If you want to use GNUnet and there is no binary package available for your OS, you should stick with the release tarball. If you want to develop using the most recent build, you should go with the git repository.

The current release tarballs for gnunet, a Gtk UI and fuse extensions can be found here:

gnunet: Download (sig)
gnunet-gtk: Download (sig)
gnunet-fuse: Download (sig)

To compile gnunet from the git source you can do so by entering:

$ git clone

Before building GNUnet, make sure that you setup the required groups and add your user to the group gnunet:

# addgroup gnunetdns
# adduser --system --home "/var/lib/gnunet" --group gnunet --shell /bin/sh gnunet
# usermod -a -G gnunet <username>

To compile GNUnet, execute:

$ export GNUNET_PREFIX=/usr/local/lib # or other directory of your choice
$ ./bootstrap # only if you install from git
$ ./configure --prefix=$GNUNET_PREFIX/..
$ make

You can find more configuration flags in the README.
Install GNUnet with:

$ (sudo) make install # you only need sudo if your GNUNET_PREFIX is not writeable by your user

You can now start GNUnet by running:

$ gnunet-arm -s

Check the handbook for detailed documentation. For a more hands-on experience, continue here.