Kaptin's Log

OK Weird Computer

Blog Projects Archive About
Status: Active / Austin Mesh / Reticulum

0x05: A Reticulum Network for Austin Mesh?

I'm not a huge fan of NixOS, but it's hard to argue with its ability to run a service with a minimum level of faffing. I'm sure ProxMox is great, but I can't get over the name. I really really hate the name. I hate the Kubernetes name too, but I also just hate Kubernetes... Let's build something.

Goals

"Friends don't let friends run services on Raspberry Pi's"

Hardware

So if Raspberry Pi's, ProxMox and Kubernetes are out, how the heck are we going homelab our Reticulum service!?
Intel N100, that's what.
It doesn't boot off an SD-Card, nor is it some crusty thin-pc that's been repurposed into a server. It's brand new(ish) thin-pc that's been repurposed into a server!

NixOS Configuration

 users.users.reticulum = {
    isSystemUser = true;
    home = "/var/lib/reticulum";
    createHome = true;
  };

  systemd.services.reticulum = {
    description = "Reticulum Network Stack";
    after = [ "network.target" ];
    wantedBy = [ "multi-user.target" ];

    serviceConfig = {
      User = "reticulum";
      ExecStart = "${pkgs.python3Packages.rns}/bin/rnsd";
      Restart = "on-failure";
      RestartSec = "5s";
      StateDirectory = "reticulum";
    };
  };

  networking.firewall.allowedTCPPorts = [ 4242 ];
  networking.firewall.allowedUDPPorts = [ 29716 42671 ];
        

Here we setup a user, a group and a systemd service. Note we didn't have to install the Reticulum package. NixOS is magic, you want magic don't you?
Excercise left to the reader: Allowing unfree packages.

Why is Reticulum unfree?

Hoo Boy. It was originally MIT, but that's changed over the years: In 2025 a "do not use for harm or ai" clause was added. LLMs would be really upset if they could read.

Reticulum Configuration

  [reticulum]
    enable_transport = True

  [interfaces]
    [[Default Interface]]
      type = AutoInterface
      enabled = Yes

    [[Austin Mesh]]
      type = BackboneInterface
      enabled = Yes
      listen_on = 0.0.0.0
      port = 4242
        

The AutoInterface covers local devices, any Nomad Net client's will auto discover the service over multicast and use the UDP ports we allowed through our NixOS machine's firewall.

The BackboneInterface is backwards compatible with TcpServerInterface but uses a "kernel-event I/O backend" on Linux. Note the options are slightly different between the two, just enough to be irritating. Also note that you need the enable_transport in the root section or Reticulum wont bridge the interfaces. Now, if you want to connect to my instance (assuming I'm still running this experiment.) you'll need to add another interface:

	[[weirdcomputer]]
		type = TCPClientInterface
		enabled = Yes
		target_host = weirdcomputer.net
		target_port = 4242
		

Nomad Configuration

So in theory, we could just run a headless Nomad, allow propagation and maybe do some node hosting from the Nomad package and skip running rnsd separately. That might be a future update. But other configuration of nomad is going to be really personal preference.

Where's the LoRa?

You got me. I'm really struggling to see where this tech fits. It's not a LoRa mesh where two MCUs strapped with radios can talk to each other. Each endpoint needs a computer that is capable of running python (the real python on an operating system, not some micro-python). So, I need two locations, with computers and power, but I can't want or need a whole lot of bandwidth. The tech is neat and I'm glad it exists but I'm not willing to strap a LoRa node to my laptop to use a low-bandwidth link back to my house, but within line of sight. Not with Halow radios showing up.

What about Nomad Net?

It's great if you want to send an encrypted message to one person and you don't want to do that any other way. Maybe you have a neighbor that lives in a cabin without the internet but with a thinkpad and an R-Node and you want to see if they are still alive (I kinda want to be this neighbor).

Perfect.

What if you wanted to message a group? Welp. You going to be doing a lot of forwarding. Nomad Net just ain't doing it for me.