Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Reticulum Status Page

Build and Publish Docker Image Socket Badge DeepSource

Reticulum status page using direct Reticulum library integration and rnsd from the utilities. Built using Flask, Gunicorn, and HTMX.

Features

  • Check status of Reticulum interfaces.
  • Download specific or all interfaces (txt)
  • API for usage in other projects/applications

Security

  • API rate limiting with Flask-Limiter
  • CORS for locking down cross origin requests
  • Talisman for security headers
  • Docker uses Chainguard images for rootless and distroless containers

Install

pipx install rns-status-page

Usage

rns-status-page

It uses uptime.json to track uptime of interfaces and persist across rns-status-page restarts.

No rnsd

If you already have rnsd or nomadnet running you can use the --no-rnsd flag to not start rnsd on a separate thread for the status page.

rns-status-page --no-rnsd

Docker/Podman

docker run -d --name rns-status-page -p 5000:5000 ghcr.io/sudo-ivan/rns-status-page:latest
touch ./uptime.json
chown 65532:65532 ./uptime.json
docker run -d --name rns-status-page -p 5000:5000 -v ./uptime.json:/home/nonroot/uptime.json ghcr.io/sudo-ivan/rns-status-page:latest

If you have existing config, chown 65532:65532 uptime.json

Replace docker with podman if you are using podman.

Docker Compose

# Create uptime.json with correct permissions
touch ./uptime.json
chown 65532:65532 ./uptime.json

# Start the service
docker compose up -d

The compose configuration includes:

  • Resource limits (CPU/Memory)
  • Security capabilities (NET_ADMIN, NET_RAW)
  • Health checks
  • Automatic restart policy

Debugging

Verify rnstatus works:

docker exec rns-status-page rnstatus

Should display interface stats.

To-Do

  • More tracking over time and stats
  • Integrate more with the Reticulum network (Data sharing for more reliable stats, usage by LXMF bots, API over Reticulum)
  • Stale server detection (node is up but no announces being received/sent)
  • Filter by reliability and uptime
  • Micron Status Page
  • Optional I2P, yggdrasil support (in docker)
  • Convert announces received/sent into a more readable format
  • Add API security tests
  • Memory and performance optimization
  • History endpoint for changes over time
  • Sqlite database instead of json for uptime and history
  • Dedicated settings file to configure various things

API

Read the API.md file for more information on api usage.

How it works

  1. Starts rnsd in a separate thread, unless --no-rnsd flag is used which will use existing shared connection or rnsd instance
  2. Uses Reticulum directly to get the status of interfaces/servers. (originally used rnstatus command output)
  3. Flask and Gunicorn are used to serve the status page and API

Contributing

All contributions are welcome!

License

MIT

Metadata

Release files for rns-status-page 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rns-status-page 1.5.0
File Size Uploaded
rns_status_page-1.5.0.tar.gz 179.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rns-status-page 1.5.0
File Interpreter ABI Platform
rns_status_page-1.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 357.6 kB

Release files / rns_status_page-1.5.0.tar.gz

Download URL rns_status_page-1.5.0.tar.gz
Size 179.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3df809f2e37b96390d94c3ec4aa3e33106c83fc28ec0c6b64712cdaba9d61da1
BLAKE2b-256 checksum
How to use checksums
dab00d40f8904044ceff09abe52ece549d3acfa7196fd6228438bd3e89be1910
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2025.

Transparency log

Release files / rns_status_page-1.5.0-py3-none-any.whl

Download URL rns_status_page-1.5.0-py3-none-any.whl
Size 178.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8998b540bfd1e4fdbc490054331ebdc07a9bcf9a20841907d83519ca00034ad1
BLAKE2b-256 checksum
How to use checksums
0498e4f229e40cd1c9895265e906ad750c7d2d1a82223db4b8349a9b9ee224db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2025.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page