Installation

Getting started with RTRTR is really easy by either installing a Debian and Ubuntu package, using Docker, or building from Cargo.

Quick Start

Assuming you have a machine running a recent Debian or Ubuntu distribution, you can install RTRTR from our software package repository. To use this repository, add the line below that corresponds to your operating system to your /etc/apt/sources.list or /etc/apt/sources.list.d/:

deb [arch=amd64] https://packages.nlnetlabs.nl/linux/debian/ stretch main
deb [arch=amd64] https://packages.nlnetlabs.nl/linux/debian/ buster main
deb [arch=amd64] https://packages.nlnetlabs.nl/linux/ubuntu/ xenial main
deb [arch=amd64] https://packages.nlnetlabs.nl/linux/ubuntu/ bionic main
deb [arch=amd64] https://packages.nlnetlabs.nl/linux/ubuntu/ focal main

Then run the following commands:

sudo apt update && apt-get install -y gnupg2
wget -qO- https://packages.nlnetlabs.nl/aptkey.asc | sudo apt-key add -
sudo apt update

You can then install RTRTR using:

sudo apt install rtrtr

You can now configure RTRTR by editing /etc/rtrtr.conf and start it with sudo systemctl enable --now rtrtr. You can check the status with the command sudo systemctl status rtrtr and view the logs with sudo journalctl --unit=rtrtr.

System Requirements

When choosing a system to run RTRTR on, make sure you have 1GB of available memory and 1GB of disk space.

Installing From Source

You need a C toolchain and Rust to install and run RTRTR. You can install RTRTR on any system where you can fulfil these requirements.

C Toolchain

Some of the libraries Routinator depends on require a C toolchain to be present. Your system probably has some easy way to install the minimum set of packages to build from C sources. For example, this command will install everything you need on Debian/Ubuntu:

apt install build-essential

If you are unsure, try to run cc on a command line. If there is a complaint about missing input files, you are probably good to go.

Rust

The Rust compiler runs on, and compiles to, a great number of platforms, though not all of them are equally supported. The official Rust Platform Support page provides an overview of the various support levels.

While some system distributions include Rust as system packages, Routinator relies on a relatively new version of Rust, currently 1.45 or newer. We therefore suggest to use the canonical Rust installation via a tool called rustup.

To install rustup and Rust, simply do:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Alternatively, visit the official Rust website for other installation methods.

You can update your Rust installation later by running:

rustup update

Building

The easiest way to get Routinator is to leave it to Cargo by saying:

cargo install --locked rtrtr

The command will build Routinator and install it in the same directory that Cargo itself lives in, likely $HOME/.cargo/bin. This means RTRTR will be in your path, too.

Installing Specific Versions

Release Candidates of RTRTR are also available on our software package repository. To install these as well, add the line below that corresponds to your operating system to your /etc/apt/sources.list or /etc/apt/sources.list.d/:

deb [arch=amd64] https://packages.nlnetlabs.nl/linux/debian/ stretch-proposed main
deb [arch=amd64] https://packages.nlnetlabs.nl/linux/debian/ buster-proposed main
deb [arch=amd64] https://packages.nlnetlabs.nl/linux/ubuntu/ xenial-proposed main
deb [arch=amd64] https://packages.nlnetlabs.nl/linux/ubuntu/ bionic-proposed main
deb [arch=amd64] https://packages.nlnetlabs.nl/linux/ubuntu/ focal-proposed main

You can use this command to get an overview of the available versions:

apt policy rtrtr

If you want to install a Release Candidate or a specific version of Routinator using Cargo, explicitly use the --version option. If needed, use the --force option to overwrite an existing version:

cargo install --locked --force rtrtr --version 0.1.1

If you want to try the main branch from the repository instead of a release version, you can run:

cargo install --git https://github.com/NLnetLabs/rtrtr.git --branch main