---
html: install-clio-on-ubuntu.html
parent: install-clio.html
blurb: Install a precompiled Clio binary on Ubuntu Linux.
labels:
- Clio Server
---
# Install Clio on Ubuntu Linux
This page describes the recommended instructions for installing the latest stable version of Clio on **Ubuntu Linux 20.04 or higher** using the [`apt`](https://ubuntu.com/server/docs) utility.
These instructions install a binary that has been compiled by Ripple.
## Prerequisites
Before you install Clio, you must meet the following requirements.
1. Ensure that your system meets the [system requirements](system-requirements.html).
**Note:** Clio uses Cassandra as the database and the disk requirements for Clio are lower than the requirements for `rippled` as the data will not be stored on your local disk.
2. A compatible version of CMake must be installed. Clio requires C++20 and Boost 1.75.0 or higher.
3. Access to a Cassandra cluster that is running locally or remote. You can choose to install and configure a Cassandra cluster manually by following the installation instructions, or run Cassandra on a Docker container using the following commands.
1. If you choose to persist Clio data, run Cassandra in a Docker container and specify an empty directory to store Clio data:
docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/
cassandra cassandra:4.0.4
2. If you do not wish to persist Clio data, run the following command:
docker run --rm -it --network=host --name cassandra cassandra:4.0.4
5. In order to run Clio, you also need to run one or more `rippled` servers in [P2P mode](install-rippled.html). The `rippled` servers can either be local or remote. Ensure that you have at least one `rippled` server running in P2P mode.
## Installation Steps
1. Update repositories:
sudo apt -y update
2. Install utilities:
sudo apt -y install apt-transport-https ca-certificates wget gnupg
3. Add Ripple's package-signing GPG key to your list of trusted keys:
sudo mkdir /usr/local/share/keyrings/
wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg
sudo mv ripple-key.gpg /usr/local/share/keyrings
4. Check the fingerprint of the newly-added key:
gpg /usr/local/share/keyrings/ripple-key.gpg
The output should include an entry for Ripple such as the following:
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17]
C0010EC205B35A3310DC90DE395F97FFCCAFD9A2
uid TechOps Team at Ripple
sub rsa3072 2019-02-14 [E] [expires: 2026-02-17]
In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the third line, starting with `C001`.)
4. Add the appropriate Ripple repository for your operating system version:
echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \
sudo tee -a /etc/apt/sources.list.d/ripple.list
The above example is appropriate for **Ubuntu 20.04 Focal Fossa**.
5. Fetch the Ripple repository.
sudo apt -y update
6. Install the Clio software package:
sudo apt -y install rippled
7. Run `./clio_server config.json`.
8. A Clio server needs to access a `rippled` server to run succesfully. To enable communication between the servers, the config files of Clio and `rippled` need to share the following information.
1. Update the Clio server's config file with the following information:
* The IP of `rippled` server.
* The port on which `rippled` is accepting unencrypted WebSocket connections.
* The port on which `rippled` is handling gRPC requests.
"etl_sources":
[
{
"ip":"127.0.0.1",
"ws_port":"6006",
"grpc_port":"50051"
}
]
**Note** You can use multiple `rippled` servers as a data source by add more entries to the `etl_sources` section. Clio will load balance requests across the servers specified in the list. As long as one `rippled` server is up and synced, Clio will continue to extract validated ledgers.
The [example-config](https://github.com/XRPLF/clio/blob/develop/example-config.json) file accesses the `rippled` server running on the local loopback network (127.0.0.1), with the WebSocket (WS) on port 6006 and gRPC on port 50051.
2. Update the `rippled` server's config file with the following information:
* Open a port to accept unencrypted websocket connections.
[port_ws_public]
port = 6005
ip = 0.0.0.0
protocol = ws
* Open a port to handle gRPC requests and specify the IP(s) of Clio server(s) in the `secure_gateway` entry.
[port_grpc]
port = 50051
ip = 0.0.0.0
secure_gateway =
9. Start the `rippled` and Clio servers.
Clio waits for `rippled` to sync before extracting ledgers. If you are starting the servers for the first time,
If you are starting with a fresh database, Clio needs to download the full ledger. This can take some time.
## See Also
- **Concepts:**
- [The Clio Server](the-clio-server.html)