====== 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]]