A simple way to serve pages and files over the Reticulum network. https://pypi.org/p/rns-page-node
Find a file
2025-11-12 18:51:39 -06:00
.github/workflows add safety workflow 2025-11-12 18:47:23 -06:00
docker move dockerfiles to docker folder 2025-11-08 14:02:06 -06:00
rns_page_node Improve data processing in PageNode class to handle both dictionary and bytes input. 2025-10-05 16:35:38 -05:00
tests move dockerfiles to docker folder 2025-11-08 14:02:06 -06:00
.deepsource.toml ci: add .deepsource.toml 2025-07-14 22:01:12 +00:00
.gitignore remove old 2025-11-12 18:47:08 -06:00
LICENSE Initial commit 2025-05-28 06:43:59 -05:00
Makefile Update Makefile to use docker buildx load command for building images and adjust Dockerfile paths to the new 'docker' directory. 2025-11-08 14:02:51 -06:00
poetry.lock update 2025-11-12 18:40:01 -06:00
pyproject.toml Update dependencies to rns 1.0.2 in pyproject.toml and requirements.txt; refine README for clarity and usage instructions. 2025-11-12 18:37:12 -06:00
README.md Update dependencies to rns 1.0.2 in pyproject.toml and requirements.txt; refine README for clarity and usage instructions. 2025-11-12 18:37:12 -06:00
README.ru.md Update README.ru.md 2025-11-12 18:51:39 -06:00
requirements.txt Update dependencies to rns 1.0.2 in pyproject.toml and requirements.txt; refine README for clarity and usage instructions. 2025-11-12 18:37:12 -06:00
setup.py Update package version to 1.2.0 and dependencies to rns 1.0.1 in pyproject.toml, requirements.txt, and setup.py; adjust poetry.lock accordingly. 2025-11-08 14:02:25 -06:00

RNS Page Node

Русская

Build and Publish Docker Image Docker Build Test DeepSource

A simple way to serve pages and files over the Reticulum network. Drop-in replacement for NomadNet nodes that primarily serve pages and files.

Features

  • Serves pages and files.
  • Simple

To-Do

  • Parameter parsing for forums, chat etc...

Usage

# Pip
# May require --break-system-packages

pip install rns-page-node

# Pipx

pipx install rns-page-node

# uv

uv venv
source .venv/bin/activate
uv pip install rns-page-node

# Pipx via Git

pipx install git+https://github.com/Sudo-Ivan/rns-page-node.git

Usage

# will use current directory for pages and files
rns-page-node

or

rns-page-node --node-name "Page Node" --pages-dir ./pages --files-dir ./files --identity-dir ./node-config --announce-interval 3600

Docker/Podman

docker run -it --rm -v ./pages:/app/pages -v ./files:/app/files -v ./node-config:/app/node-config -v ./config:/root/.reticulum ghcr.io/sudo-ivan/rns-page-node:latest

Docker/Podman Rootless

mkdir -p ./pages ./files ./node-config ./config
chown -R 1000:1000 ./pages ./files ./node-config ./config
podman run -it --rm -v ./pages:/app/pages -v ./files:/app/files -v ./node-config:/app/node-config -v ./config:/app/config ghcr.io/sudo-ivan/rns-page-node:latest-rootless

Mounting volumes are optional, you can also copy pages and files to the container podman cp or docker cp.

Build

make build

Build wheels:

make wheel

Build Wheels in Docker

make docker-wheels

Pages

Supports dynamic pages but not request data parsing yet.

Options

-c, --config: The path to the Reticulum config file.
-n, --node-name: The name of the node.
-p, --pages-dir: The directory to serve pages from.
-f, --files-dir: The directory to serve files from.
-i, --identity-dir: The directory to persist the node's identity.
-a, --announce-interval: The interval to announce the node's presence.
-r, --page-refresh-interval: The interval to refresh pages.
-f, --file-refresh-interval: The interval to refresh files.
-l, --log-level: The logging level.

License

This project incorporates portions of the NomadNet codebase, which is licensed under the GNU General Public License v3.0 (GPL-3.0). As a derivative work, this project is also distributed under the terms of the GPL-3.0. See the LICENSE file for full license.