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 a storage provider.
- Push a backup.
- 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.