Skip to content

Backups and restore

Backups are taken by the server’s Node, compressed and encrypted before they leave it. They run on schedules even while the Controller is down.

A global administrator sets up destinations under Administration → Backup destinations:

  • Node directory: each Node keeps its own servers’ backups under the Agent’s backup directory (/var/lib/shardkeep-agent/backups by default). Mount a disk or an NFS export there to keep them off the system disk.
  • S3-compatible storage: an endpoint, bucket, region, optional prefix and a key pair, over HTTPS. A custom CA can be added for self-hosted storage.

When you create a destination, Shardkeep shows its recovery key once. Save it somewhere safe. Shardkeep keeps a copy so restores work, but with your copy you can decrypt a backup without Shardkeep at all:

Terminal window
age -d -i recovery-key.txt <backup>.tar.zst.age | tar --zstd -x
  • Now: Back up now in a server’s Backups section.
  • On a schedule: add a Back up schedule under Schedules, with a destination and retention: keep the last N backups (7 by default), optionally nothing older than some days. The newest is always kept.

A running server keeps running: Shardkeep pauses its world saving, saves, archives, and resumes.

Backups contain the server’s data except what is downloaded again (the server software, managed plugin jars, libraries) and its logs/, which hold player names and addresses.

Each backup in a server’s Backups section offers:

  • Restore replaces the server’s data with the backup. A safety backup is taken first, by default. The server stops while its data is replaced, then starts again if it was running.
  • As new server creates a new server from the backup, with the backup’s software and plugins.
  • Download (the download button) gets the decrypted archive.

A backup from a newer Minecraft version cannot be restored onto an older server: worlds cannot be downgraded.