====== 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:
[[robinnet:testing]]