Nomad Network
More actions
Nomad Network is a Reticulum-native application: pages, file distribution and messaging that live entirely inside Reticulum. There is no DNS, no certificates, no IP addresses and no hosting provider. A node announces itself, other people browse it, and that is the whole system.
It is easiest to think of it as a small self-hosted web that happens not to touch the internet. Pages are written in a lightweight markup called micron, served straight from a directory on your machine, and reachable by anyone who can route to your Reticulum address — over the internet, over I2P, or over a LoRa link with no internet involved at all.
What ScotMesh hosts
| Node | Address |
|---|---|
| ScotMesh Reticulum Node | 10a839df2c50635bcb0c8a299b9ca0f8
|
| Entry page | 10a839df2c50635bcb0c8a299b9ca0f8:/page/index.mu
|
It carries the same connection details as our web pages: how to reach the backbone over TCP and I2P, and how to join the chat room. The node announces itself hourly, so once you are connected it should simply appear in your node list without you needing the address above.
We also run an LXMF propagation node (c283b754e0acc11ce48d2f5e29167e0c), which is what makes offline messaging work: it holds messages for people who are not currently connected and delivers them when they reappear. Most clients find it automatically.
Browsing Nomad Network
Install it and run it:
pip install nomadnet
nomadnet
It opens a terminal interface. The Network tab lists nodes that have announced themselves; select one to browse its pages. If you know an address you can enter it directly. Announces take a few minutes to arrive after you first connect, so an empty list on first run is normal rather than a fault.
Hosting your own node
Any machine that runs Reticulum can host pages — a Raspberry Pi, a spare laptop, or the same box as your transport node. It costs almost nothing to run.
1. Enable the node
In ~/.nomadnetwork/config, under [node]:
[node]
enable_node = yes
node_name = Your Node Name
announce_at_start = yes
announce_interval = 60
announce_interval is in minutes. The default is 360 — six hours — which in practice means nobody ever hears you, because clients that connect between announces have no way to learn you exist. An hour is a much more sensible figure for a node you want found.
2. Write your pages
Pages live in ~/.nomadnetwork/storage/pages/. The entry point is index.mu. Micron markup is compact:
`c`F2c8`!My Node`!`f
`cA one line description
`a
-
>About
Plain paragraphs need no markup at all.
>>A smaller heading
Indented text is used for code and config blocks.
`[A link to another page`abc123...:/page/other.mu]
| Markup | Effect |
|---|---|
> >> >>>
|
Headings, three levels |
`! … `!
|
Bold |
`* `_
|
Italic, underline |
`F2c8 … `f
|
Foreground colour (3 hex digits), then reset |
`c `a
|
Centre, then back to normal alignment |
-
|
Horizontal divider on its own line |
`[Label`hash:/page/file.mu]
|
Link to a page on a node |
3. Dynamic pages
A .mu file with the executable bit set is run rather than served, and whatever it prints becomes the page. That is all there is to it — a shell script or Python file that prints micron gives you a live page. Nomad Network ships a message-board example that works exactly this way.
4. Restart and check
nomadnet --daemon --console
Give it a few minutes, then look for your node in someone else’s Network tab. If it does not appear, the announce interval is the usual culprit.
Why bother
A Nomad Network node keeps working when other things do not. It needs no domain, no certificate, no static address and no port forwarding; it is reachable over radio with no internet at all; and nothing about it depends on a service that can withdraw it. For a mesh community that is the point — the documentation about the network should be reachable from the network.