Skip to content
ricochet

Host

Ricochet Server is distributed as native .deb and .rpm packages and runs as a systemd service. This guide covers manual installation on a single Linux server.

DistributionArchitecturePackage format
Debian / Ubuntuamd64.deb
AlmaLinux / RHEL / ELx86_64.rpm

Ricochet Server packages are published to object storage.

Terminal window
VERSION=$(curl -s https://ricochet.rs/releases.json | grep -o '"latest": *"[^"]*"' | grep -o 'v[0-9.]*')
curl -fLO https://hel1.your-objectstorage.com/ricochet-server/${VERSION#v}/ricochet-server_${VERSION#v}-1_amd64.deb
sudo apt install ./ricochet-server_${VERSION#v}-1_amd64.deb

The package installs the ricochet binary and a ricochet-server.service systemd unit.

Ricochet reads its configuration from /var/lib/ricochet/ricochet-config.toml.
Create or edit this file with your deployment’s settings.

At a minimum you need to configure OIDC authentication:

/var/lib/ricochet/ricochet-config.toml
[auth.oidc]
issuer_url = "https://your-idp.example.com/"
client_id = "your-client-id"
client_secret = "your-client-secret"
redirect_url = "https://your-ricochet-host.example.com/oauth/callback"

Ensure appropriate permissions are set on the config file:

Terminal window
sudo chmod 0644 /var/lib/ricochet/ricochet-config.toml
sudo chown root:root /var/lib/ricochet/ricochet-config.toml
  1. Reload systemd to pick up the new unit file:

    Terminal window
    sudo systemctl daemon-reload
  2. Enable and start the service:

    Terminal window
    sudo systemctl enable --now ricochet-server.service
  3. Verify the service is running:

    Terminal window
    sudo systemctl status ricochet-server.service

Ricochet Server listens on port 6188 by default.

To upgrade to a new version, download the new package and install it over the existing one.

Terminal window
curl -fLO https://hel1.your-objectstorage.com/ricochet-server/${VERSION}/ricochet-server_${VERSION}-1_amd64.deb
sudo apt install ./ricochet-server_${VERSION}-1_amd64.deb
sudo systemctl restart ricochet-server.service

Ricochet works without any interpreters installed. However, if you plan to deploy R, Python, or Julia content, you must install the respective interpreters on the host machine. Container and Kubernetes deployments bundle their own interpreters and do not require this step.

The .deb and .rpm packages bundle the following tools so that ricochet can manage language environments without relying on system-installed versions:

ToolVendor pathPurpose
uvRICOCHET_HOME/vendor/py/uvPython package management, running Python content, and Python version discovery
juliaupRICOCHET_HOME/vendor/jl/juliaupManaging Julia environments and Julia version discovery
renvRICOCHET_HOME/vendor/r/renvR package environment restoration

When using the systemd service, RICOCHET_HOME defaults to /var/lib/ricochet/data. See the storage configuration for more details.

If deploying Python-based content, Ricochet will discover Python installations on the host. We encourage installing Python via uv for the best experience managing multiple Python versions.

Terminal window
uv python install <version>

We recommend using rig to install R:

Terminal window
rig add <version>

You can also install R from CRAN or your distribution’s package manager. However, if you want to make use of multiple R versions, rig is the easiest and most flexible option.

If deploying Julia-based content, Ricochet uses juliaup to discover installed Julia channels. Julia must be installed via juliaup. Only juliaup-managed Julia installations are supported.

Terminal window
juliaup add <version>

If you manage your infrastructure with Ansible, the devxy.data_science_core collection provides roles for installing R, Python, and their system dependencies:

Terminal window
ansible-galaxy collection install devxy.data_science_core
roles:
- role: devxy.data_science_core.r
- role: devxy.data_science_core.python

The interpreters may require additional system libraries for compiling packages at runtime.
Here’s a baseline of system libraries which we recommend installing:

Terminal window
sudo apt install \
libgit2-dev libxml2-dev libharfbuzz-dev libfreetype-dev libfontconfig-dev \
libgdal-dev libproj-dev libgeos-dev libjq-dev libmagick++-dev \
libnetcdf-dev libfribidi-dev jags libglpk-dev libpng-dev \
libsecret-1-dev poppler-utils libreadline-dev unixodbc-dev \
default-jdk-headless libicu-dev libudunits2-dev libsodium-dev \
zlib1g-dev libglu1-mesa-dev libcairo2-dev git freetds-common \
libv8-dev librsvg2-dev libsqlite3-dev libpq-dev libgmp3-dev libmpfr-dev
Terminal window
sudo systemctl stop ricochet-server.service
sudo systemctl disable ricochet-server.service
sudo apt purge ricochet-server

The configuration file at /var/lib/ricochet/ricochet-config.toml is not removed automatically. Delete it manually if it is no longer needed.