Installation ============ System Requirements ------------------- When choosing a system to run RTRTR on, make sure you have 1GB of available memory and 1GB of disk space. Binary Packages --------------- Getting started with RTRTR is really easy by installing a binary package for either Debian and Ubuntu or for Red Hat Enterprise Linux (RHEL) and compatible systems such as Rocky Linux. Alternatively, you can run with Docker. You can also build RTRTR from the source code using Cargo, Rust's build system and package manager. Cargo lets you to run RTRTR on almost any operating system and CPU architecture. Refer to the :doc:`building` section to get started. .. tabs:: .. group-tab:: Debian To install an RTRTR package, you need the 64-bit version of one of these Debian versions: - Debian Bullseye 11 - Debian Buster 10 - Debian Stretch 9 Packages for the ``amd64``/``x86_64`` architecture are available for all listed versions. In addition, we offer ``armhf`` architecture packages for Debian/Raspbian Bullseye, and ``arm64`` for Buster. First update the ``apt`` package index: .. code-block:: bash sudo apt update Then install packages to allow ``apt`` to use a repository over HTTPS: .. code-block:: bash sudo apt install \ ca-certificates \ curl \ gnupg \ lsb-release Add the GPG key from NLnet Labs: .. code-block:: bash curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg Now, use the following command to set up the *main* repository: .. code-block:: bash echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/debian \ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/null Update the ``apt`` package index once more: .. code-block:: bash sudo apt update You can now install RTRTR with: .. code-block:: bash sudo apt install rtrtr :doc:`Configure<configuration>` RTRTR by editing :file:`/etc/rtrtr.conf` and start it with: .. code-block:: bash sudo systemctl enable --now rtrtr You can check the status of RTRTR with: .. code-block:: bash sudo systemctl status rtrtr You can view the logs with: .. code-block:: bash sudo journalctl --unit=rtrtr .. group-tab:: Ubuntu To install an RTRTR package, you need the 64-bit version of one of these Ubuntu versions: - Ubuntu Jammy 22.04 (LTS) - Ubuntu Focal 20.04 (LTS) - Ubuntu Bionic 18.04 (LTS) - Ubuntu Xenial 16.04 (LTS) Packages are available for the ``amd64``/``x86_64`` architecture only. First update the ``apt`` package index: .. code-block:: bash sudo apt update Then install packages to allow ``apt`` to use a repository over HTTPS: .. code-block:: bash sudo apt install \ ca-certificates \ curl \ gnupg \ lsb-release Add the GPG key from NLnet Labs: .. code-block:: bash curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg Now, use the following command to set up the *main* repository: .. code-block:: bash echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/ubuntu \ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/null Update the ``apt`` package index once more: .. code-block:: bash sudo apt update You can now install RTRTR with: .. code-block:: bash sudo apt install rtrtr :doc:`Configure<configuration>` RTRTR by editing :file:`/etc/rtrtr.conf` and start it with: .. code-block:: bash sudo systemctl enable --now rtrtr You can check the status of RTRTR with: .. code-block:: bash sudo systemctl status rtrtr You can view the logs with: .. code-block:: bash sudo journalctl --unit=rtrtr .. group-tab:: RHEL/CentOS To install an RTRTR package, you need Red Hat Enterprise Linux (RHEL) 7 or 8, or compatible operating system such as Rocky Linux. Packages are available for the ``amd64``/``x86_64`` architecture only. First create a file named :file:`/etc/yum.repos.d/nlnetlabs.repo`, enter this configuration and save it: .. code-block:: text [nlnetlabs] name=NLnet Labs baseurl=https://packages.nlnetlabs.nl/linux/centos/$releasever/main/$basearch enabled=1 Then run the following command to add the public key: .. code-block:: bash sudo rpm --import https://packages.nlnetlabs.nl/aptkey.asc You can then install RTRTR by running: .. code-block:: bash sudo yum install -y rtrtr :doc:`Configure<configuration>` RTRTR by editing :file:`/etc/rtrtr.conf` and start it with: .. code-block:: bash sudo systemctl enable --now rtrtr You can check the status of RTRTR with: .. code-block:: bash sudo systemctl status rtrtr You can view the logs with: .. code-block:: bash sudo journalctl --unit=rtrtr .. group-tab:: Docker RTRTR Docker images are built with Alpine Linux for ``amd64``/``x86_64`` architecture. To run RTRTR with Docker you will first need to create an :file:`rtrtr.conf` file somewhere on your host computer and make that available to the Docker container when you run it. For example if your config file is in :file:`/etc/rtrtr.conf` on the host computer: .. code-block:: bash docker run -v /etc/rtrtr.conf:/etc/rtrtr.conf nlnetlabs/rtrtr -c /etc/rtrtr.conf RTRTR will need network access to fetch and publish data according to the configured units and targets respectively. Explaining Docker networking is beyond the scope of this Quick Start, however below are a couple of examples to get you started. If you need an RTRTR unit to fetch data from a source port on the host you will also need to give the Docker container access to the host network. For example one way to do this is with ``--net=host``, where ``...`` represents the rest of the arguments to pass to Docker and RTRTR: .. code-block:: bash docker run --net=host ... If you're not using ``--net=host`` you will need to tell Docker to expose the RTRTR target ports, either one by one using ``-p``, or you can publish the default ports exposed by the Docker container (and at the same time remap them to high numbered ports) using ``-P``: .. code-block:: bash docker run -p 8080:8080/tcp -p 9001:9001/tcp ... Or: .. code-block:: bash docker run -P ... Updating -------- .. tabs:: .. group-tab:: Debian To update an existing RTRTR installation, first update the repository using: .. code-block:: text sudo apt update You can use this command to get an overview of the available versions: .. code-block:: text sudo apt policy rtrtr You can upgrade an existing RTRTR installation to the latest version using: .. code-block:: text sudo apt --only-upgrade install rtrtr .. group-tab:: Ubuntu To update an existing RTRTR installation, first update the repository using: .. code-block:: text sudo apt update You can use this command to get an overview of the available versions: .. code-block:: text sudo apt policy rtrtr You can upgrade an existing RTRTR installation to the latest version using: .. code-block:: text sudo apt --only-upgrade install rtrtr .. group-tab:: RHEL/CentOS To update an existing RTRTR installation, you can use this command to get an overview of the available versions: .. code-block:: bash sudo yum --showduplicates list rtrtr You can update to the latest version using: .. code-block:: bash sudo yum update -y rtrtr .. group-tab:: Docker Upgrading to the latest version of RTRTR can be done with: .. code-block:: text docker run -it nlnetlabs/rtrtr:latest Installing Specific Versions ---------------------------- Before every new release of RTRTR, one or more release candidates are provided for testing through every installation method. You can also install a specific version, if needed. .. tabs:: .. group-tab:: Debian If you would like to try out release candidates of RTRTR you can add the *proposed* repository to the existing *main* repository described earlier. Assuming you already have followed the steps to install regular releases, run this command to add the additional repository: .. code-block:: bash echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/debian \ $(lsb_release -cs)-proposed main" | sudo tee /etc/apt/sources.list.d/nlnetlabs-proposed.list > /dev/null Make sure to update the ``apt`` package index: .. code-block:: bash sudo apt update You can now use this command to get an overview of the available versions: .. code-block:: bash sudo apt policy rtrtr You can install a specific version using ``<package name>=<version>``, e.g.: .. code-block:: bash sudo apt install rtrtr=0.1.1~rc2-1buster .. group-tab:: Ubuntu If you would like to try out release candidates of RTRTR you can add the *proposed* repository to the existing *main* repository described earlier. Assuming you already have followed the steps to install regular releases, run this command to add the additional repository: .. code-block:: bash echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/ubuntu \ $(lsb_release -cs)-proposed main" | sudo tee /etc/apt/sources.list.d/nlnetlabs-proposed.list > /dev/null Make sure to update the ``apt`` package index: .. code-block:: bash sudo apt update You can now use this command to get an overview of the available versions: .. code-block:: bash sudo apt policy rtrtr You can install a specific version using ``<package name>=<version>``, e.g.: .. code-block:: bash sudo apt install rtrtr=0.1.1~rc2-1bionic .. group-tab:: RHEL/CentOS To install release candidates of RTRTR, create an additional repo file named :file:`/etc/yum.repos.d/nlnetlabs-testing.repo`, enter this configuration and save it: .. code-block:: text [nlnetlabs-testing] name=NLnet Labs Testing baseurl=https://packages.nlnetlabs.nl/linux/centos/$releasever/proposed/$basearch enabled=1 You can use this command to get an overview of the available versions: .. code-block:: bash sudo yum --showduplicates list rtrtr You can install a specific version using ``<package name>-<version info>``, e.g.: .. code-block:: bash sudo yum install -y rtrtr-0.1.1 .. group-tab:: Docker All release versions of RTRTR, as well as release candidates and builds based on the latest main branch are available on `Docker Hub <https://hub.docker.com/r/nlnetlabs/rtrtr/tags?page=1&ordering=last_updated>`_. For example, installing RTRTR 0.1.1 is as simple as: .. code-block:: text docker run -it nlnetlabs/rtrtr:v0.1.1