USE IT AT YOUR OWN RISK! Please do not use this guide if you can’t fix evmosd setup in case anything goes wrong!!!

go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]
mkdir -p $HOME/.evmosd/cosmovisor/genesis/bin
mkdir $HOME/.evmosd/cosmovisor/upgrades
echo "export DAEMON_NAME=evmosd" >> $HOME/.bash_profile
echo "export DAEMON_HOME=$HOME/.evmosd" >> $HOME/.bash_profile

# stoping evmos node
sudo systemctl stop evmosd

#copy evmosd bin to cosmovisor folder
cp $(which evmosd) $HOME/.evmosd/cosmovisor/genesis/bin/
# just in case
chmod +x $HOME/.evmosd/cosmovisor/genesis/bin/evmosd

# backup evmosd service
mv /etc/systemd/system/evmosd.service /etc/systemd/system/evmosd_backup.service

# creating new service with cosmovisor and setting up environtment
sudo tee /etc/systemd/system/evmosd.service > /dev/null <<EOF  
[Unit]
Description=cosmovisor
After=network-online.target
[Service]
User=$USER
# ExecStart=$(which cosmovisor) start --home=/root/.evmosd
ExecStart=$(which cosmovisor) start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
Environment="DAEMON_HOME=$HOME/.evmosd"
Environment="DAEMON_NAME=evmosd"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable evmosd
sudo systemctl restart evmosd

# check evmosd logs
journalctl -u evmosd -f -o cat

# preparing the uprade to v2.0.0
cd
git clone <https://github.com/tharsis/evmos/>
cd ~/evmos
git pull
git checkout tags/v2.0.0
make build
cd build
chmod +x ./evmosd
./evmosd version
# 2.0.0
mkdir -p ~/.evmosd/cosmovisor/upgrades/v2/bin
cp ./evmosd ~/.evmosd/cosmovisor/upgrades/v2/bin
source $HOME/.bash_profile

# check upgrade version. Should be 2.0.0
~/.evmosd/cosmovisor/upgrades/v2/bin/evmosd version
# 2.0.0

#cosmovisor check
cosmovisor version
# example of output

# Cosmovisor Version:  
# 9:11PM INF Configuration is valid:
# Configurable Values:
#   DAEMON_HOME: /root/.evmosd
#   DAEMON_NAME: evmosd
#   DAEMON_ALLOW_DOWNLOAD_BINARIES: false
#   DAEMON_RESTART_AFTER_UPGRADE: true
#   DAEMON_POLL_INTERVAL: 300ms
#   UNSAFE_SKIP_BACKUP: false
#   DAEMON_PREUPGRADE_MAX_RETRIES: 0
# Derived Values:
#         Root Dir: /root/.evmosd/cosmovisor
#      Upgrade Dir: /root/.evmosd/cosmovisor/upgrades
#      Genesis Bin: /root/.evmosd/cosmovisor/genesis/bin/evmosd
#   Monitored File: /root/.evmosd/data/upgrade-info.json
#  module=cosmovisor
# 9:11PM INF running app args=["version"] module=cosmovisor path=/root/.evmosd/cosmovisor/genesis/bin/evmosd
# 9:11PM ERR failed to read error="lstat /root/.evmosd/cosmovisor/current/upgrade-info.json: no such file or directory" filename=/root/.evmosd/cosmovisor/current/upgrade-info.json module=cosmovisor
# **1.1.2 <-- evmosd binary version currently running via cosmovisor**