This guide assumes you're using Debian 12 and have root access to your computer.
In other words, Reticulum does the heavy lifting of figuring out how to reach nodes and then connecting you to them. Reticulum can connect over anything from traditional TCP/IP networks to darknets like Yggdrasil and I2P to exotic networking interfaces like LoRa and packet radio.
Ensure that pipx, the Python package manager, is installed:
sudo apt install pipx
Then install Reticulum:
pipx install rns; pipx ensurepath
Run Reticulum to generate a default configuration:
rnsd
(Yes, the d on the end is meant to be there. It stands for "daemon".)
Hit Control and C together after a few seconds to stop Reticulum. Then, to add some nodes, run:
curl https://letsdecentralize.org/rollcall/reticulum.txt >> ~/.reticulum/config
If you got errors about "possible carrier loss" on one of your network interfaces, either manually specify which network interfaces "Default Interface" should run on:
[[Default Interface]] type = AutoInterface enabled = Yes devices = wlp3s0,tun0 # in this example, Reticulum can use my wireless card (wlp3s0) and Yggdrasil (tun0) # but no Ethernet ports (enp0s25 or eth0) because they are not listed
or just comment out the "Default Interface" section if you only have one network interface (excluding lo) on your machine. To get a list of network interfaces, run ip addr in a separate terminal. However, if you comment out or otherwise remove "Default Interface", you may not be able to automatically connect to peers on your local network. For more information, including connecting to peers over I2P, please consult the Reticulum documentation.
Save the file, then run rnsd again to restart Reticulum with the new peers.
systemd service (optional)Stop rnsd if it is currently running.
As root, create the file /lib/systemd/system/reticulum.service and insert the following:
[Unit] Description=Reticulum After=network.target [Service] User=YourUsernameHere Group=YourUsernameHere ExecStart=/home/YourUsernameHere/.local/bin/rnsd -v TimeoutStopSec=5s LimitNOFILE=1048576 PrivateTmp=true ProtectSystem=full [Install] WantedBy=multi-user.target
Then reload systemd and enable the Reticulum service:
sudo systemctl daemon-reload sudo systemctl start reticulum sudo systemctl enable reticulum
git clone --depth 1 https://codeberg.org/drkhsh/gopher-rns
If you get an error about missing Python modules, run the following:
pip install --break-system-packages -r gopher-rns/requirements.txt
Note: despite the name of the --break-system-packages flag, that command will not actually break your system because you (hopefully!) ran it as your normal user and not as root.
Now run the Gopher server:
python3 gopher-rns/gopherd.py /path/to/your/website/files
Your Reticulum identity (address) for your server will be saved to ~/..gopher_server_identity. BACK THIS FILE UP!
Traditional Gopher clients can't connect to Reticulum gopherholes because Reticulum doesn't use traditional DNS-based hostnames. Thankfully, in the same repo as gopherd.py is a simple client, gopher.py.
Connect to your own server like this:
python3 gopher.py YourDestinationHashHere
made with <3 by your friends at Dead End Shrine Online
CC BY-NC-SA 4.0 © Lethe Beltane