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
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
- starts
rnsdin a seperate thread, unless--no-rnsdflag is used which it will use existing instance. - uses
rnstatusto get the status of the Reticulum network using provided config file. - Flask and Gunicorn are used to serve the status page and API.
Contributing
All contributions are welcome!
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
408409756ae8e87074d59e1b3f335e09545d541019e55e3e646d280be853512c
|
|
| MD5 |
9d2690a7963d5848ff94c2835d31ec8f
|
|
| BLAKE2b-256 |
bf19127dfd5382272c1f0872a73ff4547cf3fa5572c4ed932f50e7ddac8b0d26
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rns_status_page-1.2.0.tar.gz -
Subject digest:
408409756ae8e87074d59e1b3f335e09545d541019e55e3e646d280be853512c - Sigstore transparency entry: 210209435
- Sigstore integration time:
-
Permalink:
Sudo-Ivan/rns-status-page@80bb17d777fa3da22ce0a9e78fed569ae6877b52 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/Sudo-Ivan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@80bb17d777fa3da22ce0a9e78fed569ae6877b52 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74fc8cede4a3588157b2693650b21fe17fdaef7ede4d024318bd33c71566ea50
|
|
| MD5 |
2b24b89d8a6eb07ee6ae960c92c54c55
|
|
| BLAKE2b-256 |
c94c4f1532469584f28872a5599d8386659029829830169def87644300952ea4
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rns_status_page-1.2.0-py3-none-any.whl -
Subject digest:
74fc8cede4a3588157b2693650b21fe17fdaef7ede4d024318bd33c71566ea50 - Sigstore transparency entry: 210209436
- Sigstore integration time:
-
Permalink:
Sudo-Ivan/rns-status-page@80bb17d777fa3da22ce0a9e78fed569ae6877b52 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/Sudo-Ivan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@80bb17d777fa3da22ce0a9e78fed569ae6877b52 -
Trigger Event:
push
-
Statement type: