🐳 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
Mainnet Beta
export NETWORK=celestia
export CHAIN_ID=celestia
export APP_VERSION=v6.4.10
export NODE_VERSION=v0.28.4If 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-dockerBefore mounting this directory, Linux users may need to set permissions:
sudo chown 10001:10001 $HOME/celestia-app-dockerInitialize 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_IDDownload 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_IDConfigure persistent peers
Mainnet Beta
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.tomlStart 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:26657Check 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-networkRecreate 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:26657Start 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 $NETWORKNext steps
Feel stuck? Go to our Discord!
Last updated on