Skip to content

Upgrading

Read the release notes first. Upgrade the Controller first, then the Agents on your other Nodes: an Agent works with a Controller one release ahead, not the other way round.

Running servers keep running while you upgrade: Agents keep them going without the Controller, and a new Agent takes over the existing containers.

Run the install script again:

Terminal window
curl -fsSL https://shardkeep.gg/install.sh | sh

It downloads the new release’s compose.yml, changes only SHARDKEEP_VERSION in .env, and restarts. Your other settings and the database password stay as they are.

By hand: set SHARDKEEP_VERSION in /opt/shardkeep/.env, download that release’s compose.yml, then:

Terminal window
cd /opt/shardkeep
docker compose pull
docker compose up -d

The Controller migrates its database when it starts. Back up the database and the controller-data volume before upgrading.

Start the new Agent image with the same flags and the same volume. With the docker run command from Add a Node:

Terminal window
docker pull registry.gitlab.com/shardkeep/shardkeep/agent:1.20.0
docker rm -f shardkeep-agent
docker run -d --name shardkeep-agent --restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v shardkeep-agent:/var/lib/shardkeep-agent \
-v /proc:/host/proc:ro \
registry.gitlab.com/shardkeep/shardkeep/agent:1.20.0 -controller shardkeep.example.com:8443

No enrollment token is needed: the Agent’s identity is in its volume.