Skip to content

Backup and recovery

What the mirror holds

With SPIELSTAND_MIRROR set, the server copies every version to the mirror as soon as it arrives:

Spielstand/
  elden-ring/
    20261017T092958939Z-0a2f18349905.tar.zst   the save files
    20261017T092958939Z-0a2f18349905.json      PC, time, parent, files, hashes
  _state/heads.json                            current states, labels, kept versions

The packages are plain tar.zst files; any version can be unpacked by hand (tar --zstd -xf …) without Spielstand.

Rebuilding a lost server

Start a new, empty server with the same SPIELSTAND_MIRROR and the rclone configuration, then:

docker compose run --rm spielstand restore-from-mirror
docker compose up -d

All versions, current states and labels come back. The PCs have to be paired again (the device tokens are not in the mirror on purpose); their saves are not touched by that.

Backing up the server itself

Everything is in the data volume (/data): spielstand.db and the blobs/ folder. Stopping the container and copying the folder is a complete backup.

Forgotten password

docker compose exec spielstand spielstand-server reset-password 'a new password'

A PC broke

Its versions are on the server. Pair the new PC; its first sync loads the current state of every game it has installed.