Layup

Backups

Layup backs up to any S3-compatible storage: Amazon S3, Cloudflare R2, Backblaze B2, MinIO and others. Add a destination under Server > Backups.

The recovery key

Adding the first destination shows a recovery key, once. Every backup is encrypted to it, so whoever holds the storage can't read them. Keep the key somewhere safe outside the server, such as a password manager. Rebuilding a lost server needs it, and nobody can recover it for you.

App backups

An app's backup holds its volumes and its configuration. Copying pauses the app's containers, so the copy is consistent, and resumes them when it's done. Schedule backups on the app's Backups tab, and choose how many to keep.

Restore puts back one volume or the whole app. It first backs up what it's about to replace, so Undo restore is always possible. A restore downloads and checks the whole backup before touching anything, so a damaged backup leaves the app as it was.

Server backups

A server backup holds Layup's own state: apps, settings, variables, team, routes. App data comes back from each app's own backups.

Rebuilding a lost server

On a new server, install with the destination and the recovery key:

sh
curl -fsSL https://get.layup.sh/install | sudo sh -s -- \
  --restore-endpoint https://<account>.r2.cloudflarestorage.com \
  --restore-bucket backups \
  --restore-access-key <key> \
  --restore-secret <secret> \
  --recovery-key AGE-SECRET-KEY-1...

Layup finds the newest server backup the key opens, restores it, and redeploys every app. Sign in with an account from the backup, then restore each app's volumes from its Backups tab.