Table of Contents
Installing RobinNet
RobinNet is a lightweight Python application designed to run on Linux systems.
It is intentionally simple to deploy and can run on:
- Raspberry Pi
- home servers
- cloud VPS
- emergency field nodes
- laptops
Requirements
Python 3.10 or newer.
Required Python packages:
- fastapi
- uvicorn
- requests
Install dependencies:
pip install fastapi uvicorn requests
Project Layout
Example directory layout:
robinnet/ βββ robinnet/ β βββ api.py β βββ cli.py β βββ daemon.py β βββ db.py β βββ main.py β βββ models.py β βββ sync.py β βββ data/
The database files will be created inside the data directory.
Initialize a Node
Before running a node, you must initialize the node identity.
Example:
python -m robinnet.cli \ --db ./data/node.db \ init-node \ --name alpha \ --operator "Rich"
Optional fields:
python -m robinnet.cli \ --db ./data/node.db \ init-node \ --name alpha \ --operator "Rich" \ --callsign N2XYZ \ --location "Albany NY"
This creates:
- node UUID
- node name
- operator information
- transport profile
Starting the API Server
Run the RobinNet node:
ROBINNET_DB=./data/node.db \ python -m robinnet.main
The API server will start on:
http://localhost:8080
You can verify it using:
curl http://localhost:8080/api/v1/health
Running the Background Worker
The daemon performs:
- periodic peer sync
- message expiration
- maintenance tasks
Start the daemon:
ROBINNET_DB=./data/node.db \ python -m robinnet.daemon
In production deployments, the daemon may run under:
- systemd
- tmux
- screen
- docker container
Running Multiple Nodes
You can run multiple RobinNet nodes on the same machine for testing.
Example:
Node A:
ROBINNET_DB=./data/alpha.db \ ROBINNET_PORT=8081 \ python -m robinnet.main
Node B:
ROBINNET_DB=./data/bravo.db \ ROBINNET_PORT=8082 \ python -m robinnet.main
Each node uses its own database.
Next Step
Once a node is installed, see:
