Installing NomadNet and navigating to your first site

This guide assumes you're using Debian 12 and have root access to your computer.

Last updated: 2024-10-03

Installing Reticulum

Reticulum is "the cryptography-based networking stack for building local and wide-area networks with readily available hardware. It can operate even with very high latency and extremely low bandwidth. Reticulum allows you to build wide-area networks with off-the-shelf tools, and offers end-to-end encryption and connectivity, initiator anonymity, autoconfiguring cryptographically backed multi-hop transport, efficient addressing, unforgeable delivery acknowledgements and more."

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 T*****/IP networks to darknets like Yggdrasil and I2P to exotic networking interfaces like LoRa and packet radio. Reticulum and NomadNet are developed by the same person, but they are two separate projects. This means, in the future, more applications than just NomadNet can connect over Reticulum.

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, in your favorite text editor, edit ~/.reticulum/config and add the following to the bottom of the file:

  [[RNS Testnet Dublin]]
    type = T*****ClientInterface
    enabled = yes
    target_host = dublin.connect.reticulum.network
    target_port = 4965

  [[RNS Testnet BetweenTheBorders]]
    type = T*****ClientInterface
    enabled = yes
    target_host = betweentheborders.com
    target_port = 4242

  [[nisa-node]]
    type = T*****ClientInterface
    enabled = yes
    target_host = nisa.cat
    target_port = 4242

  [[SparkN0de-ext1 t*****]]
    type = T*****ClientInterface
    enabled = yes
    target_host = aspark.uber.space
    target_port = 44860

  [[alex A]]
    type = T*****ClientInterface
    enabled = yes
    target_host = 5.42.83.19
    target_port = 5001

  [[The Outpost]]
    type = T*****ClientInterface
    enabled = yes
    target_host = theoutpost.life
    target_port = 4242

  [[RNS NerdNet Transport]]
    type = T*****ClientInterface
    enabled = yes
    target_host = nerdnetreticulum.servep2p.com
    target_port = 4242

  [[g00n.cloud]]
    type = T*****ClientInterface
    enabled = yes
    target_host = dfw.us.g00n.cloud    
    target_port = 6969

  [[T***** UHC Node]]
    type = T*****ClientInterface
    enabled = yes
    target_host = rns.uhc.onl
    target_port = 22260

  [[RNS Testnet coinkite]]
    type = T*****ClientInterface
    enabled = yes
    target_host = ln.coinkite.com
    target_port = 42420

  [[dismail.de]]
    type = T*****ClientInterface
    enabled = yes
    target_host = rns.dismail.de
    target_port = 7822

  [[RNS T***** Node Germany 001]]
    type = T*****ClientInterface
    enabled = yes
    target_host = 202.61.243.41 
    target_port = 4965

  [[RNS T***** Node Germany 002]]
    type = T*****ClientInterface
    enabled = yes
    target_host = 193.26.158.230
    target_port = 4965
			

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.

 

Setting up Reticulum as a 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
			

 

Installing NomadNet

A "NomadNet address" is just a cryptographically-generated peer ID. Like Secure Scuttlebutt, your ID is agnostic of your actual IP address or physical location, and while you can only have that specific identity running on one device at a time, you can easily back up your ID or move it to another device by copying the contents of ~/.nomadnetwork to another machine.

Install NomadNet:

pipx install nomadnet

 

Connecting to a peer and viewing their files

Despite Nomadnet being a terminal-based program, at the time of writing it does not have keyboard shortcuts for navigating between windows. A mouse and X server are required to navigate between the "Conversations" and "Network" tabs.

Start NomadNet:

nomadnet

Click on the "Network" tab, then press Control and L together on your keyboard. If you configured Reticulum correctly according to this guide, you should already see some peers in the "Announce Stream". Peers with a circled N are NomadNet nodes, whereas peers with a circled P are just Reticulum peers for helping route traffic. Only NomadNet nodes have pages on them.

If you see an interesting peer in the list, you can browse any pages they might have uploaded by clicking on that peer's entry, then clicking "Connect".

To connect to a peer you don't see in the list, or if you just don't feel like scrolling, press Control and U together, then paste the node address into the box that pops up. Press the Enter button. After a few seconds, if the node is hosting any pages, the default page (index.mu) should show up.


made with <3 by your friends at Dead End Shrine Online
CC BY-NC-SA 4.0 © Lethe Beltane