A lightweight web-based monitoring tool for Reticulum Network Stack (RNS) nodes. This tool provides real-time visibility into your RNS node's status, interfaces, and performance metrics. This is A work in progress and contributions are welcome.
This monitoring tool is a web interface built on top of the Reticulum Network Stack's status reporting functionality. It uses the same underlying status reporting mechanism as the official rnstatus utility but presents the information in a web-based format.
- This project uses the core status reporting functionality from the Reticulum Network Stack
- The web interface and monitoring system were developed with assistance from AI tools
- The original
rnstatusutility, created by Mark Qvist, served as a reference for understanding the RNS status reporting structure
This is an independent monitoring tool that:
- Relies on the existing RNS status reporting functionality
- Does not modify any core RNS functionality
- Runs alongside existing RNS installations
- Is not affiliated with or endorsed by the official RNS project
While AI tools were used to accelerate the development process, particularly for:
- Web interface design
- Server implementation
- Configuration setup
The core functionality relies entirely on the official RNS status reporting mechanisms.
This tool is provided as a community contribution to help visualize RNS node status and is not intended to replace or modify any core RNS functionality.
- Real-time interface status monitoring
- Traffic statistics (TX/RX)
- Peer counts and announce frequencies
- Interface mode and bitrate information
- Web-based interface accessible from any browser
- Automatic updates every 60 seconds
- Uses existing RNS instance (no separate configuration needed)
- Python 3.7+
- Running RNS node (rnsd service)
- Python packages:
- aiohttp
The monitor comes with security-focused defaults:
- IP addresses are masked by default
- Client interface information is hidden by default
These can be configured in monitor.py:
monitor = ReticulumMonitor(
hide_ips=True, # Set to False to show IPs
hide_clients=True # Set to False to show client interfaces
)- Install required packages:
pip3 install aiohttp- Clone the repository:
git clone https://github.com/cwilliams001/RNS-Monitor.git
cd rns-monitor- Create the systemd service file:
sudo nano /etc/systemd/system/rns-monitor.serviceAdd the following content (adjust paths as needed):
[Unit]
Description=Reticulum Network Monitor
After=network.target rnsd.service
[Service]
Type=simple
User=your_user
WorkingDirectory=/path/to/monitor
ExecStart=/usr/bin/python3 monitor.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-target.target- Start and enable the service:
sudo systemctl enable rns-monitor
sudo systemctl start rns-monitorTo access the monitor securely over HTTPS, you can set up Caddy as a reverse proxy:
- Install Caddy:
# On Ubuntu/Debian
sudo apt install caddy- Configure Caddy:
sudo nano /etc/caddy/CaddyfileAdd:
your-domain.com {
reverse_proxy localhost:8080
encode gzip
header {
# Security headers
Strict-Transport-Security "max-age=31536000; includeSubDomains"
X-Content-Type-Options "nosniff"
X-Frame-Options "DENY"
Referrer-Policy "strict-origin-when-cross-origin"
}
}
- Restart Caddy:
sudo systemctl restart caddyIf using UFW, configure it with:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpAccess the monitor through:
- Local:
http://localhost:1149 - Remote (with Caddy):
https://your-domain.com
The monitor runs on port 1149 by default, a homage to RFC 1149 (IP over Avian Carriers). While our packets travel a bit faster than carrier pigeons, I liked the reference to alternative networking approaches!
- The monitor uses the shared RNS instance and doesn't require additional RNS configuration
- Consider using Caddy for HTTPS encryption
- Monitor runs on localhost by default
- Client interface IPs are hidden by default for public-facing deployments
- IP addresses in interface names are masked for security
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License
- Built on top of the Reticulum Network Stack
- Thanks to the RNS community for feedback and testing
