> For the complete documentation index, see [llms.txt](https://services.validexis.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://services.validexis.com/testnets/celestia/full-node-installation.md).

# 💾  Full Node Installation

Recommended Hardware:

<table><thead><tr><th>Node Type</th><th width="184">CPU</th><th>RAM</th><th>Storage</th></tr></thead><tbody><tr><td>Testnet</td><td>6</td><td>8GB</td><td>10TB </td></tr></tbody></table>

&#x20;***Install dependencies***

<pre class="language-bash"><code class="lang-bash"># Update the repositories
<strong>sudo apt update &#x26;&#x26; apt upgrade -y
</strong></code></pre>

```bash
# Install developer packages
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
```

```bash
# Install Go
sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.24.6.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
```

## ***Automatic Installation***

```bash
source <(curl -s https://raw.githubusercontent.com/validexisinfra/Celestia/main/setup_archiv_testnet.sh)
```

## ***Manual Installation***

```bash
# Come up with the name of your node and replace it instead <your_moniker>
MONIKER=<your_moniker>
```

```bash
# Download binary files
cd $HOME
rm -rf celestia-app
git clone https://github.com/celestiaorg/celestia-app.git
cd celestia-app
git checkout v6.4.10-mocha

make install
```

```bash
# Config and initialize the node
celestia-appd config set client chain-id mocha-4
celestia-appd config set client keyring-backend file
celestia-appd config set client node tcp://localhost:26657

celestia-appd init $MONIKER --chain-id mocha-4
```

```bash
# Download genesis and addrbook
wget -O $HOME/.celestia-app/config/genesis.json https://testnets1.validexis.com/celestia/genesis.json
wget -O $HOME/.celestia-app/config/addrbook.json https://testnets1.validexis.com/celestia/addrbook.json
```

***Setup config***

```bash
# Add seeds
SEEDS="30a8f6668043544ee2d9af9369f0f68ff8cf2c43@seed-celestia-testnet.validexis.com:26656"
PEERS="9d357da286e8278c79ec6ebfc01d295a547ddd98@peer-celestia-testnet.validexis.com:26656,5d0bf034d6e6a8b5ee31a2f42f753f1107b3a00e@65.108.75.179:11656,89cca749b0eab33db47da6015bc5f3845c361964@167.172.30.82:26656,ef713a1700508c9c6a46cc2b61b41a6fa59ac53d@136.243.94.113:26656,227f9c3bf41779ab70187b781cf4de3f387870f0@51.89.21.142:26656,2e28ae4affb16877f4dba754fd4ba5509f669c5f@94.130.221.170:26656,0d25acebc3c65a6e90d0f9b448d4f2f47e5de55e@217.28.56.148:26656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
       -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.celestia-app/config/config.toml

# Set minimum gas price and disable indexing
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.002utia\"|" $HOME/.celestia-app/config/app.toml
sed -i -e "s/^indexer *=.*/indexer = \"kv\"/" $HOME/.celestia-app/config/config.toml

# Set pruning
sed -i \
  -e 's|^pruning *=.*|pruning = "nothing"|' \
  $HOME/.celestia-app/config/app.toml

# Enable bbr
sudo modprobe tcp_bbr
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
```

```bash
# Create service file
sudo tee /etc/systemd/system/celestia-appd.service > /dev/null <<EOF
[Unit]
Description=Celestia node
After=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/.celestia-app
ExecStart=$(which celestia-appd) start --home $HOME/.celestia-app
Restart=on-failure
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
```

```bash
# Download latest chain snapshot
curl -L https://snapshots1.validexis.com/celestia-testnet/snap_celestia-archive_8827431.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.celestia-app/
```

```bash
# Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable celestia-appd
sudo systemctl start celestia-appd && sudo journalctl -u celestia-appd -f
```

```bash
# Check status
celestia-appd status 2>&1 | jq

#"catching_up": false means that the node is synchronized, we are waiting for complete synchronization
```
