Skip to main content

A Flask web server to display Reticulum network status.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Reticulum Status Page

Socket Badge

Reticulum status page using rnstatus and rnsd from the utilities. Built using Flask, Gunicorn, and HTMX.

Request to Add or Remove an Interface: Open a Issue or message me on Reticulum c0cdcb64499e4f0d544ff87c9d5e2485 this only applies to my instance at rstatus.quad4.io

Features

  • Check status of Reticulum interfaces using rnstatus.
  • 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

pip 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

[!NOTE]
Please wait atleast 5 minutes for rnstatus to work.

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 # or docker exec <your-container-name> rnstatus

To-Do

  • More tracking over time and stats.
  • Stale server detection (node is up but no announces being recieved/sent).
  • Configuration for the status page and API.
  • Filter by reliability and uptime.
  • Micron Status Page.
  • Optional I2P, yggdrasil support (in docker).
  • Convert announces recieved/sent into a more readable format.
  • Add API security tests.
  • Memory and performance optimization.
  • History endpoint for changes over time.
  • 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 seperate thread, unless --no-rnsd flag is used which it will use existing instance.
  2. uses rnstatus to get the status of the Reticulum network using provided config file.
  3. Flask and Gunicorn are used to serve the status page and API.

Contributing

All contributions are welcome!

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rns_status_page-1.2.0.tar.gz (175.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rns_status_page-1.2.0-py3-none-any.whl (174.2 kB view details)

Uploaded Python 3

File details

Details for the file rns_status_page-1.2.0.tar.gz.

File metadata

  • Download URL: rns_status_page-1.2.0.tar.gz
  • Upload date:
  • Size: 175.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for rns_status_page-1.2.0.tar.gz
Algorithm Hash digest
SHA256 408409756ae8e87074d59e1b3f335e09545d541019e55e3e646d280be853512c
MD5 9d2690a7963d5848ff94c2835d31ec8f
BLAKE2b-256 bf19127dfd5382272c1f0872a73ff4547cf3fa5572c4ed932f50e7ddac8b0d26

See more details on using hashes here.

Provenance

The following attestation bundles were made for rns_status_page-1.2.0.tar.gz:

Publisher: publish.yml on Sudo-Ivan/rns-status-page

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rns_status_page-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: rns_status_page-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 174.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for rns_status_page-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 74fc8cede4a3588157b2693650b21fe17fdaef7ede4d024318bd33c71566ea50
MD5 2b24b89d8a6eb07ee6ae960c92c54c55
BLAKE2b-256 c94c4f1532469584f28872a5599d8386659029829830169def87644300952ea4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rns_status_page-1.2.0-py3-none-any.whl:

Publisher: publish.yml on Sudo-Ivan/rns-status-page

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page