Skip to Content
Welcome to our new docs! 🎉

🐳 Docker setup for celestia-app

This page has instructions to run celestia-appd using Docker images.

If you are looking for instructions to run celestia-node using Docker, refer to the celestia-node Docker page.

Prerequisites

Quick start with persistent storage

Set network and version variables

export NETWORK=celestia export CHAIN_ID=celestia export APP_VERSION=v6.4.10 export NODE_VERSION=v0.28.4

If you are block syncing Mainnet Beta from genesis, use export APP_VERSION=v3.0.2 as a temporary workaround for celestia-app issue #4370 . After sync completes, upgrade to the latest version.

Create the node home directory

mkdir -p $HOME/celestia-app-docker

Before mounting this directory, Linux users may need to set permissions:

sudo chown 10001:10001 $HOME/celestia-app-docker

Initialize the node home

docker run --rm \ -v $HOME/celestia-app-docker:/home/celestia/.celestia-app \ ghcr.io/celestiaorg/celestia-app:$APP_VERSION \ init "docker-node" --chain-id $CHAIN_ID

Download the genesis file

docker run --rm \ -v $HOME/celestia-app-docker:/home/celestia/.celestia-app \ ghcr.io/celestiaorg/celestia-app:$APP_VERSION \ download-genesis $CHAIN_ID

Configure persistent peers

PERSISTENT_PEERS=$(curl -sL https://raw.githubusercontent.com/cosmos/chain-registry/master/celestia/chain.json | jq -r '.peers.persistent_peers[].address' | tr '\n' ',' | sed 's/,$/\n/') sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" $HOME/celestia-app-docker/config/config.toml

Start the container

docker run -d \ --name celestia-app \ --restart unless-stopped \ -v $HOME/celestia-app-docker:/home/celestia/.celestia-app \ -p 26656:26656 \ -p 26657:26657 \ -p 9090:9090 \ ghcr.io/celestiaorg/celestia-app:$APP_VERSION \ start --home /home/celestia/.celestia-app --rpc.laddr tcp://0.0.0.0:26657

Check node status

docker logs -f celestia-app curl -s http://localhost:26657/status | jq '.result.sync_info'

Run celestia-node in Docker against your containerized celestia-app

If you run a bridge node, make sure your consensus node config follows the bridge requirements.

Create a shared Docker network

docker network create celestia-network

Recreate celestia-app on the shared network

docker stop celestia-app && docker rm celestia-app docker run -d \ --name celestia-app \ --restart unless-stopped \ --network celestia-network \ --network-alias celestia-app \ -v $HOME/celestia-app-docker:/home/celestia/.celestia-app \ -p 26656:26656 \ -p 26657:26657 \ -p 9090:9090 \ ghcr.io/celestiaorg/celestia-app:$APP_VERSION \ start --home /home/celestia/.celestia-app --rpc.laddr tcp://0.0.0.0:26657

Start celestia-node in the same Docker network

docker run --rm -it \ --name celestia-node \ --network celestia-network \ -e NODE_TYPE=light \ -e P2P_NETWORK=$NETWORK \ ghcr.io/celestiaorg/celestia-node:$NODE_VERSION \ celestia light start --core.ip celestia-app --core.port 26657 --p2p.network $NETWORK

Next steps

Feel stuck? Go to our Discord!

Last updated on