This container allows you to run a
rippled node. No config required.
The server will keep a history of only 256 ledgers. You can change this value in the config (more about the config in this readme).
The container is configured to serve a public http websocket at port
80 and the local rpc admin service in the container at port
Other ports (443, 6006, 51235) can be mapped but should be enabled in the config first.
This container is running on
How to run
If you downloaded / cloned the Github repo you got yourself a few scripts to get started. In the
./go folder, the following scripts are available, run:
go/buildto build the container image (tag:
go/upto create a new container named
rippledand setup the port and persistent config (*1)
go/downto stop and remove the container
go/up command will mount the subfolder (in the cloned repo folder)
config to the container; the
rippled.cfg config and
validators.txt will be loaded from this folder when
rippled starts. If you stop/start or restart the container, the container will pickup your changes.
When starting the container the
go/up script will map port
80 on your host to port
80 in the container. This is where
rippled is configured to serve a websocket. If you want to run the websocket on another TCP port, you can enter the port after the
go/up command, eg.:
After spinning the container up, you will see the rippled log. You should see a lot of information show up within a few seconds. If you want to stop watching the log, press CTRL - C. The container will keep on running in the background.
If you want to build the image manually, use (you can change the tag):
docker build --tag rippled:latest .
From the Docker Hub
Use the image
Because you only retrieved the container image from the Docker Hub, you have to manually create a container based on the image. When creating the container, please make sure you open port
If you run the container with a mapping to
/config/ (in the container) containing a
validators.txt file, these will be used. If the mapping or these files aren't present,
rippled will start with the default config.
This command launches your
rippled container and the rippled websocket at port
docker run -dit \ --name rippled \ -p 80:80 \ -v /my/local/disk/xrpld-config/:/config/ \ xrpllabsofficial/xrpld:latest
You can change the
--name and make sure you specify a valid local full path for your volume source, instead of
You can fetch a working sample config from the Github repo.
Note on Apple M1 / M2 chips:
Run the container with
--platform linux/amd64 to get it to work on your Mac M1 / M2.
Passing arguments/environment variables
Both environment variables passed with
docker run and arguments added at the end of the
docker run command will be passed. E.g.:
docker run \ -e TESTVAR=123123 \ -it --name rippled -p $PORT:80 \ -v $(pwd)/../config:/config/ \ xrpllabsofficial/xrpld:latest \ -a \ --start
... will pass the environment variable
TESTVAR with value, and the arguments
Alternatively, if you can't pass direct arguments, you can pass a string of arguments as an environment variable called
ENV_ARGS, like this:
docker run \ -e ENV_ARGS="-a --start" \ -it --name rippled -p $PORT:80 \ -v $(pwd)/../config:/config/ \ xrpllabsofficial/xrpld:latest
So it's running
If you want to check the rippled-logs (container stdout, press CTRL - C to stop watching):
docker logs -f rippled
If you want to check the rippled server status:
docker exec rippled rippled server_info
Check the value of
complete_ledgers in the server info to see if the server
has complete ledgers with transactions. When you launch the container it may take
a few minutes for the server to sync.
If you started the container manually, you may have to change the name of the container (
rippled) to the name you entered in your
docker run command.
You can now connect to the
rippled websocket using a client like xrpl.js.
- 2018-02-21 rippled 0.90.0 is released
- 2018-03-23 rippled 0.90.1 is released
- 2018-05-15 rippled 1.0.0 is released
- 2018-06-14 rippled 1.0.1 is released
- 2018-09-15 rippled 1.1.0 is released
- 2018-10-23 rippled 1.1.1 is released
- 2018-12-12 rippled 1.1.2 is released
- 2019-02-14 rippled 1.2.0 is released
- 2019-02-27 rippled 1.2.1 is released
- 2019-03-07 rippled 1.2.2 is released
- 2019-04-03 rippled 1.2.3 is released
- 2019-04-17 rippled 1.2.4 is released
- 2019-07-26 rippled 1.3.1 is released
- 2019-07-26 rippled 1.4.0 is released
- 2020-04-01 rippled 1.5.0 is released
- 2020-08-19 rippled 1.6.0 is released
- 2021-05-24 rippled 1.7.2 is released
- 2021-08-28 rippled 1.7.3 is released
- 2021-12-02 rippled 1.8.1 is released
- 2022-01-14 rippled 1.8.4 is released
- 2022-02-08 rippled 1.8.5 is released
- 2022-04-07 rippled 1.9.0 is released
- 2022 rippled 1.9.2 is released
- 2022 rippled 1.9.3 is released
- 2022 rippled 1.9.4 is released
- 2023-03-14 rippled 1.10.0 is released
- 2023-03 rippled 1.10.1 is released
- 2023-06-27 rippled 1.11.0 is released
- 2023-09-06 rippled 1.12.0 is released
- Stop the container:
docker stop rippled(if you named (
--name) the container
- Remove the container:
docker rm rippled
- Remove the image:
docker rmi xrpllabsofficial/xrpld:latest(or if you built the container image based on the Github repo: use the image name you specified when building)
- Re-create the container; if you used Git:
go/build- if you used the Docker Hub: just use the command from this Readme (From the Docker Hub), a new version of the image will be downloaded.
USE THE PATHS YOU SPECIFIED (
-v argument) WHEN RECREATING THE CONTAINER IF YOU WANT TO KEEP YOUR CONFIG AND/OR DATA!
Building & publishing to Docker Hub:
version=1.11.0 # Sample docker build --no-cache --tag xrpllabsofficial/xrpld:$version . docker push xrpllabsofficial/xrpld:$version docker tag xrpllabsofficial/xrpld:$version xrpllabsofficial/xrpld:latest docker push xrpllabsofficial/xrpld:latest