restic vs Borg for VPS Backups: How to Choose
restic vs BorgBackup for self-hosted VPS backups. Which handles cloud object storage, dedup, and encryption better, and which one I run across my portfolio.
If you are backing up a self-hosted VPS, restic and BorgBackup are the two tools worth your time. Both do encrypted, deduplicated, incremental backups from the command line. Both are open source and battle-tested. The short version: pick restic if your backups go to cloud object storage, pick Borg if they go to another server you control over SSH. I run restic across my portfolio because everything lands in object storage, but Borg is the better tool for a different setup, and the choice comes down to where your backups live.
What restic and Borg have in common
Start with what does not differentiate them, because it is most of what matters.
- Both encrypt on the client before anything leaves the box, so your backup destination stores ciphertext and never sees your data.
- Both deduplicate at the chunk level, so a 50GB dataset that changes slightly each day does not cost you 50GB per backup. You store the deltas.
- Both do incremental backups by default, fast after the first run.
- Both let you prune old snapshots on a retention policy: keep daily for a week, weekly for a month, monthly for a year.
If you use either one correctly, you get encrypted, space-efficient, restorable backups. The differences are about where they send data and how you operate them, not about whether they work.
Where restic wins: object storage
restic speaks cloud object storage natively. Point it at an S3-compatible bucket and it just works, no intermediate server, no agent running on the destination. This is the whole reason I use it. My offsite copies live in object storage I control, and restic writes to that bucket directly, encrypted, deduplicated, done.
That native support matters for the 3-2-1 setup I run everywhere. The offsite leg is the hard leg, and restic makes it a one-line repository target. It supports many backends beyond S3-style storage, so you are not locked to one provider, which fits how I think about avoiding vendor lock-in before you sign anything. If your backup strategy centers on cloud buckets, restic is the more natural fit.
Where Borg wins: SSH to a box you own
Borg is built around backing up to another machine over SSH, and it is exceptional at it. Its deduplication is famously tight, often tighter than restic in practice, and it has a longer track record on very large repositories. If you have a dedicated backup server, or a second VPS whose only job is to hold backups, Borg over SSH is hard to beat.
The catch is that classic Borg wants a repository it controls, which historically meant not object storage. There are wrappers and newer versions that broaden this, but the tool's heart is server-to-server. If your model is "I have a backup box and I push to it," Borg is the cleaner answer. If your model is "I push to a bucket," you are fighting the tool.
How I actually decide
The question is not which tool is better. It is where your backups live.
- Backing up to S3-compatible object storage: use restic. Native, simple, no backup server to maintain.
- Backing up to a dedicated server you own over SSH: use Borg. Tighter dedup, rock-solid for that pattern.
- Backing up a huge dataset with heavy dedup needs to owned hardware: Borg has the edge.
- Wanting the fewest moving parts across a fleet: restic, because a bucket has no daemon to babysit.
For my portfolio the decision was easy. I do not want to run and maintain a separate backup server, because that server needs its own monitoring, patching, and backups, and now I am babysitting infrastructure to protect infrastructure. Object storage has none of that operational weight, so restic to a bucket wins on total effort, not just on features.
Neither one matters if you never restore
Whichever you pick, the tool is the easy part. The discipline is the same for both: encrypt before sending, keep an offsite copy, and prove you can restore. A restic snapshot you have never restored and a Borg archive you have never restored are equally worthless. I run the same restore drills regardless of tool, and I set the RPO and RTO targets first so I know how often to back up in the first place.
I run restic to object storage across VPS boxes on HostSSH, and it has never let me down, but I would happily run Borg if my setup pushed to owned hardware instead. Choose based on where your backups land. Both tools are good. The mistake is not the tool, it is never testing the restore.