Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

29 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ Reticulum Entry Points Map

Interactive map of the Reticulum Network Entry Points with automatic geolocation, node discovery and advanced network diagnostic tools.

Network Python License Version Stars Forks Issues Last Commit

Reticulum Entry Points Map


๐ŸŒ Overview

Reticulum Entry Points Map is a lightweight Python application that automatically discovers public Reticulum entry points and displays them on an interactive Leaflet map.

The project combines automatic node discovery, IP and WHOIS geolocation, interactive visualization and built-in network diagnostics into a single web interface.

Designed for both network administrators and Reticulum enthusiasts, it allows you to inspect the public network in real time without requiring external databases or heavyweight frameworks.

Main capabilities

  • ๐ŸŒ Automatic Reticulum node discovery
  • ๐Ÿ—บ๏ธ Interactive Leaflet map
  • ๐Ÿ“ Automatic geolocation
  • ๐Ÿ  Local node visualization
  • ๐Ÿ”„ Automatic refresh
  • ๐Ÿ“ก REST API
  • ๐Ÿ” Integrated rnprobe and rnpath
  • ๐Ÿ“ Distance ruler
  • โญ• Radius drawing tool
  • ๐Ÿ”ฒ Marker clustering
  • ๐Ÿ“ฑ Responsive interface
  • โšก Lightweight Python server

๐Ÿ“‹ Table of Contents


โœจ Features

Feature Description
๐Ÿ—บ๏ธ Interactive Map Displays all discoverable Reticulum nodes on a Leaflet map
๐Ÿ“ Automatic Geolocation Uses explicit coordinates, IP lookup, WHOIS and node names
๐Ÿ”„ Automatic Refresh Refreshes the network every 30 minutes
๐Ÿ  Local Node Support Automatically displays the local server
๐Ÿ“Š REST API JSON endpoints for external applications
โšก Lightweight Pure Python implementation with minimal dependencies
๐Ÿท๏ธ Node Labels Labels become visible while zooming
๐Ÿ“ Distance Ruler Measure distances directly on the map
โญ• Radius Tool Draw circles and estimate coverage
๐Ÿ”ฒ Marker Clustering Automatically groups nearby markers
๐Ÿ” Filters Filter nodes by type and availability
๐ŸŽฏ Diagnostic Tools rnprobe, rnpath, ping, netcat and nmap integration

๐Ÿ“‹ Requirements

  • Python 3.6 or newer
  • Reticulum installed and configured
  • Internet connection
  • whois (optional but recommended)

๐Ÿš€ Quick Installation

Clone the repository

git clone https://github.com/argo79/Reticulum_Entry_Points_Map.git

cd Reticulum_Entry_Points_Map

or download the project manually.

Required files:

reticulum_map.py
locations.py
map.html
style.css
ruler.js

Configure the local node (optional)

Edit the beginning of reticulum_map.py.

LOCAL_NODE_CONFIG = {
    "name": "My Node",
    "latitude": 45.605,
    "longitude": 12.2435,
    "reachable_on": "my.public.ip",
    "port": 4242,
}

Start the server

python3 reticulum_map.py

Open the web interface

Open your browser at:

http://localhost:8484

Main interactive map.


๐ŸŽฏ Advanced Node Commands

The map integrates several network diagnostic tools that can be executed directly from the web interface.

Command Description
rnprobe Tests connectivity with a Reticulum node
rnpath Shows the current route to a node
rnpath -d Deletes the cached route
Ping Sends ICMP ping packets
Nmap Performs a TCP port scan
Netcat Tests TCP connectivity
Discovery Hash Calculates the discovery hash for a handler
Discover All Lists every discoverable handler

Available Discovery Hashes

The application can automatically calculate discovery hashes for several Reticulum services.

  • ๐Ÿ”ต Probe Hash
  • ๐Ÿ“จ LXMF Propagation
  • ๐Ÿ“ฌ LXMF Delivery
  • ๐Ÿ“ž Audio Call
  • ๐ŸŒ Nomad Network Node

Node popup with integrated network tools.


โš™๏ธ Configuration

Most settings can be customized directly inside reticulum_map.py.

PORT = 8484
REFRESH_MINUTES = 30

LOCAL_NODE_CONFIG = {
    "enabled": True,
    "name": "My Reticulum Node",
    "latitude": 45.605,
    "longitude": 12.2435,
    "reachable_on": "203.0.113.10",
    "port": 4242,
}

๐ŸŒ Automatic Geolocation

Node locations are determined using multiple methods, in priority order.

  1. Explicit GPS coordinates included in the node announcement.
  2. IP lookup using ip-api.com.
  3. Local WHOIS analysis.
  4. Location keywords extracted from the node name.

This layered approach allows most public nodes to be positioned automatically, even without GPS coordinates.

Automatic node geolocation.


๐Ÿ“ก REST API

The embedded HTTP server exposes several endpoints for automation and integration.

Method Endpoint Description
GET /data Returns every discovered node in JSON format
GET /refresh Forces a refresh of node data
GET /localnode Returns local node information
GET /get_hash/<transport>/<handler> Calculates a discovery hash
GET /rnprobe_hash/<hash> Executes rnprobe
GET /rnpath_hash/<hash> Executes rnpath
GET /rnpath_drop/<hash> Removes the cached route
GET /ping/<host> Executes an ICMP ping
GET /netcat/<host>/<port> TCP connectivity test
GET /nmap/<host> Port scan
GET /nmap/<host>/<port> Scan a specific TCP port

Example Requests

Retrieve every discovered node.

curl http://localhost:8484/data

Calculate the Probe hash for a specific transport.

curl http://localhost:8484/get_hash/c00058ab8a97b8cd5e20e5e570ad45d5/rnstransport.probe

Example response.

{
    "success": true,
    "transport_id": "c00058ab8a97b8cd5e20e5e570ad45d5",
    "handler": "rnstransport.probe",
    "hash": "ca655871b843def1277cc3416cdeed54",
    "timestamp": "2026-07-24T21:00:44.089847"
}

Responsive interface optimized for desktop, tablet and mobile devices.



๐Ÿ—‚๏ธ Project Structure

Reticulum_Entry_Points_Map/
โ”œโ”€โ”€ reticulum_map.py
โ”œโ”€โ”€ locations.py
โ”œโ”€โ”€ map.html
โ”œโ”€โ”€ style.css
โ”œโ”€โ”€ ruler.js
โ”œโ”€โ”€ robots.txt
โ”œโ”€โ”€ sitemap.xml
โ”œโ”€โ”€ nodes.json
โ”œโ”€โ”€ nodes_geo.json
โ”œโ”€โ”€ geo_cache.json
โ”œโ”€โ”€ hash_cache.pkl
โ””โ”€โ”€ img/
    โ”œโ”€โ”€ REPMap.jpg
    โ”œโ”€โ”€ REPMap1.jpg
    โ”œโ”€โ”€ REPMap2.jpg
    โ”œโ”€โ”€ REPMap3.jpg
    โ””โ”€โ”€ REPMap4.jpg

๐Ÿ”ง Customization

Adding Custom Locations

You can improve automatic geolocation by editing locations.py.

Example:

LOCATIONS = {
    "milan": {
        "lat": 45.4642,
        "lng": 9.1900
    },

    "rome": {
        "lat": 41.9028,
        "lng": 12.4964
    },

    "berlin": {
        "lat": 52.5200,
        "lng": 13.4050
    },

    "new york": {
        "lat": 40.7128,
        "lng": -74.0060
    }
}

The geolocation engine searches node names for matching keywords before falling back to WHOIS information.


Customizing the Web Interface

The frontend consists entirely of static files.

You can freely modify:

  • map.html
  • style.css
  • ruler.js

or completely replace them with your own interface.

The Python server automatically serves every static file from the project directory.


๐Ÿ› Troubleshooting

rnstatus not found

Verify that Reticulum is installed correctly.

which rnstatus
rnstatus -h

If not installed:

pip install rns

Install WHOIS

Debian / Ubuntu

sudo apt install whois

Arch Linux

sudo pacman -S whois

Fedora

sudo dnf install whois

WHOIS is optional but improves node geolocation.


Server does not respond

Verify that:

  • Python is running.
  • Port 8484 is not blocked.
  • No firewall is preventing access.
  • Reticulum is working correctly.

Address already in use

Find the process using port 8484.

sudo lsof -i :8484

Terminate it.

sudo kill -9 PID

Replace PID with the process ID returned by lsof.


Empty map

If the map is empty:

  • verify that Reticulum is running;
  • execute rnstatus;
  • make sure some discoverable nodes exist;
  • check the terminal for errors.

Geolocation fails

Possible causes:

  • Private IP addresses
  • VPN endpoints
  • Missing WHOIS package
  • Unknown node names
  • Temporary IP lookup API failure

Coordinates contained inside the node announcement always have the highest priority.


๐Ÿ“ Publishing an Entry Point

To make your Entry Point appear automatically on the map, add the following options to your Reticulum configuration.

Configuration file:

~/.reticulum/config

Example:

discoverable = Yes
discovery_name = My Backbone Node
announce_interval = 240
discovery_stamp_value = 24

latitude = 45.4642
longitude = 9.1900
height = 15

Complete Example

[Default Interface]
    type = AutoInterface
    enabled = Yes

[[Backbone Listener]]
    type = BackboneInterface

    interface_enabled = True
    mode = gateway

    listen_on =
    port = 4242

    discoverable = Yes
    discovery_name = RNS Backbone WORLD

    announce_interval = 360
    discovery_stamp_value = 24

    latitude = 45.4642
    longitude = 9.1900
    height = 15

After editing the configuration simply restart Reticulum.

Within a few announce intervals your Entry Point will automatically appear on the public map.


๐Ÿ”’ Privacy

Only Entry Points configured as:

discoverable = Yes

will appear on the map.

No additional information is collected beyond what Reticulum already publishes through the Discovery protocol.

If GPS coordinates are omitted, the application will attempt to estimate the position using IP geolocation and WHOIS information.


โš™๏ธ Performance

Typical resource usage:

Resource Usage
RAM ~25 MB
CPU <1% idle
Refresh interval 30 minutes
Supported nodes Thousands

The server is lightweight enough to run on Raspberry Pi, VPS instances and low-power hardware.


๐Ÿ“„ License

This project is released under the MIT License.

See the LICENSE file for the complete license text.


๐Ÿ‘จโ€๐Ÿ’ป Author

Arg0net

lxmf.cb04d68b73c76647dc61a530089b7dce

๐ŸŒŸ Acknowledgements

Special thanks to the projects and people that made this software possible.

  • ๐ŸŒ Reticulum Network for creating a truly decentralized networking protocol.
  • ๐Ÿ—บ๏ธ Leaflet for the interactive mapping library.
  • ๐Ÿ“ ip-api.com for the free IP geolocation service.
  • ๐Ÿ›ฐ๏ธ Every Reticulum node operator contributing to the global network.
  • ๐Ÿ‡ฎ๐Ÿ‡น The Reticulum Italia community for testing, ideas and feedback.

๐Ÿ“Š Project Statistics

Stars

Forks

Issues

Pull Requests

Last Commit


โค๏ธ Support the Project

If you find this project useful, consider supporting its development.

You can help by:

  • โญ Starring the repository.
  • ๐Ÿด Forking the project.
  • ๐Ÿ› Reporting bugs.
  • ๐Ÿ’ก Suggesting new features.
  • ๐Ÿ“– Improving the documentation.
  • ๐Ÿ”ง Submitting Pull Requests.
  • ๐Ÿ“ข Sharing the project with other Reticulum users.

๐Ÿค Contributing

Contributions are always welcome.

  1. Fork the repository.
  2. Create a feature branch.
git checkout -b feature/my-feature
  1. Commit your changes.
git commit -m "Add new feature"
  1. Push the branch.
git push origin feature/my-feature
  1. Open a Pull Request.

Please try to keep the coding style consistent with the rest of the project.


๐Ÿš€ Future Ideas

Possible future improvements include:

  • ๐ŸŒ Multiple map providers.
  • ๐Ÿ›ฐ๏ธ Real-time node updates using WebSockets.
  • ๐Ÿ“ˆ Historical node statistics.
  • ๐Ÿ“Š Network health dashboard.
  • ๐ŸŒ IPv6 visualization improvements.
  • ๐Ÿ“ก Mesh topology visualization.
  • ๐Ÿงญ Route quality metrics.
  • ๐Ÿ” Optional authentication for API endpoints.
  • ๐Ÿ“ฑ Progressive Web App (PWA).
  • ๐ŸŒ™ Dark and Light themes.

๐Ÿ“ท Screenshots

Node Information


Automatic Geolocation


Rnpath command


Rnprobe command


Circle Range


Linear Distance


โ˜• Support Development

If you find this project useful, consider buying me a virtual coffee! โ˜• Every contribution, big or small, helps keep the project alive and supports future development.

๐Ÿ’ฐ Donations

Donate XRP Donate XMR Donate ETH

Cryptocurrency Address
XRP (Ripple) rBKbetm51vuQQfg4Yo8fvweRya7gedcr9J
XMR (Monero) 87jacZEtYvXcgnvEp7wu45gLwRBYpvwMr3N9dqhNipPWV69XwQX658tS73VEdghLopG1wA4STEdMPcGF8Tc3e18eJyQ4kMA
ETH (Ethereum) 0xd2d85288df96B4162814Ca7492039620371b9D81

Made with โค๏ธ by Arg0net


๐Ÿ“ก Reticulum Identity

lxmf.04511923b68ae34e0fda5721d82f596f

โญ If you like this project, consider giving it a Star on GitHub.

About

REPMAP is an interactive map that displays in real-time the nodes of the Reticulum decentralized network. The system automatically geolocates nodes, shows their status (online/offline), and provides advanced tools like rnprobe, rnpath, ping, and port scanning. Ideal for monitoring and discovering the Reticulum network infrastructure.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages