Catbird Linux: Setting Up Reticulum Networking in Python

HOME Downloads Release Message Tips and Tricks Bug Fixes


Light up Your Grades
How to take notes, study, learn, test, and graduate at top of your class.
The reticulum network stack would have worked perfectly in the Star
    Wars world of cw radios we see in the Andor series.

A Brief Intro to Reticulum Networking

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 the Reticulum Network Stack

Setting up Reticulum on Ubuntu Linux, Debian, Arch, or any other distributon is trivially easy. Here are the essential steps:

  1. create a Python virtual environment
  2. activate the virtual environment
  3. install the Reticulum Network Stack
  4. deactivate the virtual environment
  5. install other applications which use Reticulum

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 "uv pip install" command:

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

Running the Reticulum Network Stack

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 uv pip install .




© 2020 - 2025 Catbirdlinux.com, All Rights Reserved.
Written and curated by WebDev Philip C.
Contact, Privacy Policy and Affiliate Disclosure, XML Sitemap.
This website is reader-supported. As an Amazon affiliate, I earn from qualifying purchases.