# Install on Ubuntu or Debian Linux This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux**, using a binary that has been compiled and published by Ripple as a `deb` package. Currently, **Ubuntu 22.04 and Ubuntu 24.04 on x86_64 processors** have received the highest level of support and testing. Packages are also available for **Debian Linux 12 Bookworm**. You may be able to adapt these instructions to other Linux distributions that also use the `apt` package manager, but other configurations are not officially supported. ## Prerequisites Before you install `rippled`, you must meet the [System Requirements](/es-es/docs/infrastructure/installation/system-requirements). ## 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 install -m 0755 -d /etc/apt/keyrings && \ wget -qO- https://repos.ripple.com/repos/api/gpg/key/public | \ sudo gpg --dearmor -o /etc/apt/keyrings/ripple.gpg ``` 4. Check the fingerprint of the newly-added key: ``` gpg --show-keys /etc/apt/keyrings/ripple.gpg ``` The output should include an entry for Ripple such as the following: ``` 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 second line, starting with `C001`.) 5. Add the appropriate Ripple repository for your operating system version: ``` echo "deb [signed-by=/etc/apt/keyrings/ripple.gpg] https://repos.ripple.com/repos/rippled-deb noble stable" | \ sudo tee -a /etc/apt/sources.list.d/ripple.list ``` The above example is appropriate for **Ubuntu 24.04 Noble Numbat**. For other operating systems, replace the word `noble` with one of the following: - `bullseye` for **Debian 11 Bullseye** - `bookworm` for **Debian 12 Bookworm** - `jammy` for **Ubuntu 22.04 Jammy Jellyfish** - `noble` for **Ubuntu 24.04 Noble Numbat** If you want access to development or pre-release versions of `rippled`, use one of the following instead of `stable`: - `unstable` - Pre-release builds ([`release` branch](https://github.com/XRPLF/rippled/tree/release)) - `nightly` - Experimental/development builds ([`develop` branch](https://github.com/XRPLF/rippled/tree/develop)) Unstable and nightly builds may be broken at any time. Do not use these builds for production servers. 6. Update the package index to include Ripple's repo and install `rippled`. ``` sudo apt -y update && sudo apt -y install rippled ``` 7. Check the status of the `rippled` service: ``` systemctl status rippled.service ``` The `rippled` service should start automatically. If not, you can start it manually: ``` sudo systemctl start rippled.service ``` 8. Optional: allow `rippled` to bind to privileged ports. This allows you to serve incoming API requests on port 80 or 443. (If you want to do so, you must also update the config file's port settings.) ``` sudo setcap 'cap_net_bind_service=+ep' /opt/ripple/bin/rippled ``` 9. Optional: configure core dumps By default Ubuntu is not configured to produce core files useful for debugging crashes. First run: ``` ulimit -c unlimited ``` Now run `sudo systemctl edit rippled`. The default editor should open and add ``` [Service] LimitCORE=infinity ``` This creates the file `/etc/systemd/system/rippled.service.d/override.conf` and configures the OS to save core dumps, without changing the service file provided by the `rippled` package. If your server crashes, you can find the core dump in `/var/lib/apport/coredump/`. To load the core dump for inspection, use a command such as the following: ``` gdb /opt/ripple/bin/rippled /var/lib/apport/coredump/core ``` To debug a core file this way, you must have the `rippled-dbgsym` package installed, and you need permission to read files in the core dump directory. ## Next Steps It can take several minutes to sync with the rest of the XRP Ledger network, during which time the server outputs various warnings. For information about log messages, see [Understanding Log Messages](/es-es/docs/infrastructure/troubleshooting/understanding-log-messages). You can use the [`rippled` commandline interface](/es-es/docs/tutorials/http-websocket-apis/build-apps/get-started#commandline) to see if your server is synced with the network: ```sh rippled server_info ``` If the `server_state` in the response is `full` or `proposing`, then your server is fully synced to the network. Otherwise, you may need to wait longer. Fresh servers usually sync within 15 minutes; servers that already have [ledger history](/es-es/docs/concepts/networks-and-servers/ledger-history) stored can take longer. After your server has synchronized with the rest of the network, you have a fully functional XRP Ledger peer-to-peer server that you can use to submit transactions or get API access to the XRP Ledger. See [Client Libraries](/es-es/docs/references/client-libraries) or [HTTP / WebSocket APIs](/es-es/docs/references/http-websocket-apis) for different ways to communicate with the server. If you use the XRP Ledger for your business or you want to contribute to the stability of the network, you should run one server as a validator. For information about validating servers and why you might want to run one, see [Run rippled as a Validator](/es-es/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator). Having trouble getting your server started? See [rippled Server Won't Start](/es-es/docs/infrastructure/troubleshooting/server-wont-start). ### Additional Configuration `rippled` should connect to the XRP Ledger with the default configuration. However, you can change your settings by editing the `rippled.cfg` file. For recommendations about configuration settings, see [Capacity Planning](/es-es/docs/infrastructure/installation/capacity-planning). The [recommended installation](/es-es/docs/infrastructure/installation) uses the config file `/etc/opt/ripple/rippled.cfg` by default. Other places you can put a config file include `$HOME/.config/ripple/rippled.cfg` (where `$HOME` is the home directory of the user running `rippled`), `$HOME/.local/ripple/rippled.cfg`, or the current working directory from where you start `rippled`. See [the `rippled` GitHub repository](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg) for a description of all configuration options. You must restart `rippled` for any configuration changes to take effect. If you change the `[debug_logfile]` or `[database_path]` sections, you may need to grant ownership of the new configured path to the user you run `rippled` as. ### Updates You must update `rippled` regularly to remain synced with the rest of the XRP Ledger network. You can subscribe to the [rippled Google Group](https://groups.google.com/forum/#!forum/ripple-server) to receive notifications of new `rippled` releases. The `rippled` package includes a script you can use to [enable automatic updates on Linux](/es-es/docs/infrastructure/installation/update-rippled-automatically-on-linux). On other platforms, you must update manually. ## See Also - **Concepts:** - [The `rippled` Server](/es-es/docs/concepts/networks-and-servers) - [Consensus](/es-es/docs/concepts/consensus-protocol) - **Tutorials:** - [Configure rippled](/es-es/docs/infrastructure/configuration) - [Troubleshoot rippled](/es-es/docs/infrastructure/troubleshooting) - [Get Started with the rippled API](/es-es/docs/tutorials/http-websocket-apis/build-apps/get-started) - **References:** - [rippled API Reference](/es-es/docs/references/http-websocket-apis) - [`rippled` Commandline Usage](/es-es/docs/infrastructure/commandline-usage) - [server_info method](/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info)