Skip to main content
Use a cold backup when you can stop Workspaces briefly. It copies the full /data volume into one archive and is the supported default. Restore each backup to a fresh volume, then open a document, check its version history, and make a new edit.

What the backup contains

The mounted /data directory contains all durable Workspaces data:
  • SQLite metadata;
  • bare Git repositories and document history;
  • uploaded asset bytes;
  • live-edit logs; and
  • the ready marker used during boot.
Do not copy Docker’s private host paths under /var/lib/docker. Mount the named volume in a helper container instead.

Create a cold backup

These examples use a container named rooms, a volume named ws-data, and a backup directory at /var/backups/workspaces.
1

Stop Workspaces

2

Archive the full volume

Keep the command in one shell so BACKUP_ID has the same value throughout. The command stops before Docker runs if the destination exists.
3

Restart Workspaces

Copy the archive to storage outside the Docker host. Protect it as customer data and test that you can restore it.

Restore a cold backup

Never unpack a backup over the active volume.
1

Create a fresh volume

Keep the remaining restore commands in this shell. Do not reuse a volume.
2

Extract the archive

Set BACKUP_ARCHIVE to the exact filename created by the backup command.
3

Start the matching image

Start a new container with the same protected environment and the image version that created the backup. Mount $RESTORE_VOLUME at /data.
4

Verify the restore

Check /healthz, sign in or use a test API key, open a known document, inspect its versions, and make a new edit. Compare a known file with the bytes from before the backup.

Create a hot backup

Use this method only when you cannot stop the container. Back up the SQLite database first, then the live-edit logs, Git repositories, and assets. Do not copy the live SQLite files directly.
The release drill has not yet restored a hot backup that contains uploaded asset bytes. Use a cold backup as the supported default until that test passes.

Restore a hot backup

Restore a hot backup into a fresh volume. Fix ownership before you write the ready marker. Write that marker last so Workspaces cannot boot from a partial restore. Set HOT_BACKUP_DIR to the exact directory created by the backup command.
Then start the matching image. Open a known document, check its version history, compare a known file with the pre-backup bytes, and make a new edit.

If restore fails

Use Update or roll back the container when you change image versions. Reviewed July 22, 2026. Maintained by the Plannotator documentation team.
Last modified on July 24, 2026