The Reticulum network stack is an alternative to conventional TCP/IP networking. It offers integrated encryption and improved efficiencies, making it more robust and difficult for censors to block. The physical layer of networking does not matter; reticulum can work with ethernet, bluetooth, wifi, near field communications, and LoRa. If someone would create a radio modem for continuous wave (cw), it could use that too!
Reticulum has found an enthusiastic following among users of off-grid mesh networking based on LoRa signaling. Specifically, it is used with RNode low power radio devices. There are Retculum implementations written in the Python programming language, easily installable on just about any operating system. In the sections below, we shall see how to install the Reticulum network stack and useful applications on Linux. Set up on BSD systems is nearly identical.
Setting up Reticulum on Ubuntu Linux, Debian, Arch, or any other distributon is trivially easy. Here are the essential steps:
Why is a Python virtual environment being used? Wouldn't it be simpler to just pip install the necessary packages? The answer is "sometimes." Reticulum has several Python dependencies, so it will check for what it needs and install anything which is not already present in the desired version. Doing that could break packages needed by the system or other Python packages already set up. Setting up your various Python tools with their own virtual environments results in a much more reliable and stable configuration, although more drive space is required.
Consider using the application uv for managing your user-installed Python packages and virtual environments. It is clean, fast, and reliable.
For this example, start the installation by first installing uv:
curl -fsSL https://astral.sh/uv/install.sh | sh
Set up the virtual environment for the Reticulum network stack. The sed command
edits the environment config file to allow usage of packages found in the host
system Python. Packages are installed with the "
mkdir /opt/reticulum uv venv /opt/reticulum sed -i "s/include-system-site-packages = false/include-system-site-packages = true/" /opt/reticulum/pyenv.cfg source /opt/reticulum/bin/activate uv pip install nomadnet rns lxmf deactivate
Reticulum Meshchat is the very nice and actively developed tool for mesh network based chat and network visualization. Go to GitHub and manually download the AppImage. Alternatively, install Meshchatget with some terminal commands:
cd /opt/reticulum # go to the reticulum directory wget -c \ https://github.com/liamcottle/reticulum-meshchat/releases/download/v1.21.0/ReticulumMeshChat-v1.21.0-linux.AppImage chmod +x ReticulumMeshChat*AppImage # make the AppImage executable
Create a clickable launcher for Reticulum Meshchat:
echo '[Desktop Entry] Type=Application Name=Reticulum Meshchat GenericName=Reticulum Mesh Chat Comment=Mesh network communications powered by the Reticulum Network Stack. Exec=/opt/reticulum/ReticulumMeshChat.AppImage Icon=reticulum-meshchat.ico Terminal=false Categories=Network; Keywords=network;chat;meshchat;meshnet; ' >/home/"$(logname)"/.local/share/applications/reticulum-meshchat.desktop
To actually run applications which use Reticulum, activate the Python virtual environment first, then run the desired applications. When the applications are no longer needed, close them and then shut down the virtual environment.
The necessary steps can be accomplished with either a shell script in Bash, or perhaps a script which runs Python. To the end user, the operation will seem to be seamless and so fast that there is no sense of the virtual environment being stood up or shut down. In my experience, I click an icon and the desired tool pops up and runs. In a couple of words, it is "easy peasy."
To run a tool manually, do it by opening a terminal, activating the virtual environment, then running the tool:
source /opt/reticulum/bin/activate # activate the virtual environment nomadnet # run nomadnet deactivate # when finished, deactivate the virtual environment
Any number of other Python or AppImage based Reticulum networking applications
can be installed and run. It is a tidy way to operate if AppImages are downloaded
and saved to /opt/reticulum/ and Python packages are installed
with