Skip to main content Skip to navigation Skip to footer
Limited time: Design Partner Program. BUSINESS plan free for life.

Backup & Restore

Push your repository to external storage and restore it on a new server when you need it.

Backup & Restore

Your app is live in production. Back it up. rdc pushes your entire repository (app, database, files, configs) to external storage and pulls it back any time. Ransomware, hardware failure, anything.

Watch the tutorial

Three steps

Configure, push, restore

  1. Configure a storage provider.
  2. Push a backup.
  3. Restore when you need it.

Step 1: Configure storage

You need an rclone config file. If you already use rclone, import it directly:

rdc config storage import --file rclone.conf

Import an existing rclone configuration. rclone supports S3, Backblaze, Google Drive, Dropbox, and many more. If you already use rclone, the same config imports directly.

This supports S3, B2, Google Drive, Dropbox, and many more. Verify what’s wired up:

rdc config storage list

List the storages the CLI now knows about. Each one is a destination for backups.

Step 2: Push a backup

rdc repo push --name my-app -m <machine-name> --to my-storage

Push a full backup. The entire repository is uploaded, including the app, database, files, and configuration. Because the repository is encrypted at rest, the backup is encrypted too, with no extra key management.

Your entire repository (app, database, files, everything) is now backed up. Because the repository itself is encrypted, the backup is encrypted too. No extra key management.

List your backups any time:

rdc repo backup list --from my-storage -m <machine-name>

List the backups available on this storage. Restoring on a brand new server is one command: the repo pull command.

Why no downtime?

The app keeps running while the backup uploads. How is that consistent?

Same logic as a fork. rdc forks first, then uploads the fork. The fork captures the moment; your live app keeps going. No downtime, no inconsistency.

Step 3: Restore, for real

Backups you never restore are hopes, not backups. Take the repository offline first:

rdc repo down --name my-app --machine <machine-name> --unmount

Take the repository offline first: stop the services and unmount the encrypted volume with the repo down command.

Pull the backup straight back from the storage:

rdc repo pull --name my-app --machine <machine-name> --from my-storage --force --yes

Pull the backup back from the storage with the repo pull command. The image is fetched and integrity-checked.

And mount it again, fully restored:

rdc repo mount --name my-app --machine <machine-name>

Mount the repository again — it is fully restored. The same pull works on a brand new machine.

The same pull works on a brand new server: set it up, add it to rdc, and run the pull there instead.

rdc repo pull --name my-app -m new-server --from my-storage
rdc repo up --name my-app -m new-server

Same data, same containers, different machine.

Faster backups: machine to machine

You can also push directly between machines, no cloud storage in between:

rdc repo push --name my-app -m my-server --to-machine backup-server

Pro tip. Machine-to-machine pushes send only the changed blocks after the first one. The Delta Transfer tutorial shows it live.


Next: Networking & Domains.