mirror of
https://github.com/Sudo-Ivan/rns-page-node.git
synced 2025-11-23 02:01:10 +00:00
A simple way to serve pages and files over the Reticulum network.
https://pypi.org/p/rns-page-node
| .github/workflows | ||
| docker | ||
| rns_page_node | ||
| tests | ||
| .deepsource.toml | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| poetry.lock | ||
| pyproject.toml | ||
| README.md | ||
| README.ru.md | ||
| requirements.txt | ||
| setup.py | ||
RNS Page Node
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.