# 🔌 Installation

### Install Go and Cosmovisor

Feel free to skip this step if you already have Go and Cosmovisor.

**Install Go**

We will use Go `v1.22.4` as example here. The code below also cleanly removes any previous Go installation.

```
sudo rm -rvf /usr/local/go/
wget https://golang.org/dl/go1.22.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
rm go1.22.4.linux-amd64.tar.gz
```

**Configure Go**

Unless you want to configure in a non-standard way, then set these in the `~/.profile` file.

```
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
```

**Install Cosmovisor**

We will use Cosmovisor `v1.0.0` as example here.

```
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0
```

### Install Node

Install the current version of node binary.

```
git clone https://github.com/allora-network/allora-chain allora
cd allora
git checkout v0.4.0
make install
```

### Configure Node

**Initialize Node**

Please replace `YOUR_MONIKER` with your own moniker.

```
allorad init YOUR_MONIKER --chain-id allora-testnet-1
```

**Download Genesis**

The genesis file link below is Polkachu's mirror download. The best practice is to find the official genesis download link.

```
wget -O genesis.json https://snapshots.polkachu.com/testnet-genesis/allora/genesis.json --inet4-only
mv genesis.json ~/.allorad/config
```

**Configure Seed**

```
sed -i 's/seeds = ""/seeds = "ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@testnet-seeds.polkachu.com:26756"/' ~/.allorad/config/config.toml
```

### Launch Node

**Configure Cosmovisor Folder**

Create Cosmovisor folders and load the node binary.

```
# Create Cosmovisor Folders
mkdir -p ~/.allorad/cosmovisor/genesis/bin
mkdir -p ~/.allorad/cosmovisor/upgrades

# Load Node Binary into Cosmovisor Folder
cp ~/go/bin/allorad ~/.allorad/cosmovisor/genesis/bin
```

**Create Service File**

Create a `allora.service` file in the `/etc/systemd/system` folder with the following code snippet. Make sure to replace `USER` with your Linux user name. You need sudo previlege to do this step.

```
[Unit]
Description="allora node"
After=network-online.target

[Service]
User=USER
ExecStart=/home/USER/go/bin/cosmovisor start
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="DAEMON_NAME=allorad"
Environment="DAEMON_HOME=/home/USER/.allorad"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"

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

**Start Node Service**

```
# Enable service
sudo systemctl enable allora.service

# Start service
sudo service allora start

# Check logs
sudo journalctl -fu allora
```
