RCN - Introduction: https://rcn.varia.zone/docs/users/intro/ - Clients: https://rcn.varia.zone/docs/users/clients/ - Dependencies: https://rcn.varia.zone/docs/operators/dependencies/ - Python management: https://rcn.varia.zone/docs/operators/python/ - Glossary: https://rcn.varia.zone/docs/operators/glossary/ - Presets: https://rcn.varia.zone/docs/operators/lora/presets/ - Serial ports: https://rcn.varia.zone/docs/operators/lora/serial/ - Transport node: https://rcn.varia.zone/docs/operators/lora/tn/ - RNode: https://rcn.varia.zone/docs/operators/lora/rnode/ - Debug: https://rcn.varia.zone/docs/operators/lora/debug/ - Backbone: https://rcn.varia.zone/docs/operators/tcp/backbone/ - Propagation node: https://rcn.varia.zone/docs/operators/tcp/pn/ - Clients: https://rcn.varia.zone/docs/operators/tcp/clients/ ## Introduction When installing [TCP backbones](https://markqvist.github.io/Reticulum/manual/interfaces.html#backbone-interface), we are typically dealing with an installation procedure on an old laptop, home server or Raspberry Pi. Any Linux system will do. Below, we share the commands and conventions we use to install TCP backbones on linux servers. Backbone servers should generally provide reliable uptime so that our "over the internet" fallback provides stable connectivity. We run both `rnsd` with transport, probe and gateway mode enabled. We run `lxmd` alongside `rnsd` to support [propagation](https://reticulum.network/manual/software.html#lxmf) (which supports messaging each other offline). See the [propagation node](/docs/operators/tcp/pn) documentation for more. ## Root permissions The commands below assume you are running the commands as the root user. ```bash sudo -i ``` ## System user We create a specific system user for all our Reticulum programs. ```bash useradd --system -s /sbin/nologin reticulum ``` ## `rnsd` Install `rnsd` globally with `pipx`. > [!NOTE] > **NOTE** \ > See [Python packaging](/docs/operators/python) for more information on `pipx`. ```bash pipx install rns --global ``` Create a system configuration location. ```bash mkdir /etc/reticulum chown reticulum:reticulum /etc/reticulum ``` We create a TCP backbone, running [gateway mode](https://reticulum.network/manual/interfaces.html#interfaces-modes) with [transport](https://reticulum.network/manual/networks.html#transport-nodes-and-instances) and [probing](https://reticulum.network/manual/using.html#the-rnprobe-utility) enabled and . We use `24242` as our standard port. Add the following contents to `/etc/reticulum/config`. ```toml [reticulum] enable_transport = yes share_instance = yes instance_name = default respond_to_probes = yes static_transport_identity = yes [logging] loglevel = 4 [interfaces] [[YourBackboneNameHere]] type = BackboneInterface enabled = yes listen_on = 0.0.0.0 port = 24242 ``` Then we configure a Systemd service file to run the `rnsd` process. ```bash $EDITOR /etc/systemd/system/rnsd.service ``` ```conf [Unit] Description=Reticulum Network Stack Daemon After=default.target [Service] User=reticulum Type=simple Restart=always RestartSec=3 ExecStart=/usr/local/bin/rnsd --service [Install] WantedBy=default.target ``` Then enable the service and ensure it's up and running. ```bash systemctl daemon-reload systemctl enable --now rnsd systemctl status rnsd tail -f /etc/reticulum/logfile ```