backups.hosting

Guide · Tool comparison

Borg vs Restic: which backup tool fits you?

Borg (BorgBackup) and Restic are both free, open-source tools that produce deduplicated, encrypted, incremental snapshots of your files. The difference that decides most real choices is remote support: Borg speaks to a repository over SSH only, while Restic natively speaks SFTP, S3-compatible object storage, and a dozen other backends through the same client. Neither is objectively "better" — the right pick depends on where your data needs to end up.

What both tools actually do

Borg and Restic both split files into content-defined chunks, so unchanged data is never re-uploaded even across different files or later snapshots — that's where the deduplication comes from. Every chunk is encrypted client-side before it leaves your machine, so the remote never sees plaintext or holds the key. Snapshots reference chunks rather than copying them, and a prune or forget operation removes chunks no longer referenced by any snapshot you've chosen to keep.

Both trace back to the same lineage: Borg forked from Attic in 2015 to fix its performance and reliability issues; Restic was written from scratch and released the following year with object storage as a design goal from day one, not an add-on. That origin still shows — it's why Borg's SSH path feels the most polished, and why Restic's backend list keeps growing.

Where they differ

AspectBorgRestic
RemotesSSH to a Borg-aware server, or a local/mounted pathLocal, SFTP, REST server, S3-compatible object storage, Backblaze B2, Azure, GCS, and 30+ backends via rclone
EncryptionAES-256, client-side (repokey or keyfile modes)AES-256 + Poly1305 authentication, client-side
DeduplicationContent-defined chunking; typically the tighter ratio of the twoContent-defined chunking (rolling hash); solid dedup, slightly larger repos in most benchmarks
Compressionlz4, zstd, zlib, or lzma — configurable per archivezstd, on by default since v0.14
Append-onlyServer-side --append-only flag; a separate key prunes--append-only on a REST server, or storage-side Object Lock on S3-compatible backends
Retentionborg prune with keep-daily/weekly/monthly/yearlyrestic forget --prune with the same keep- flags
Native clientsLinux, macOS, BSD — no native Windows binary (WSL works)Linux, macOS, Windows, BSD — native binaries for all
EcosystemVorta desktop GUI, mature since ~2015restic-browser, Autorestic, resticprofile, growing Kubernetes/Velero integration

Both projects are actively maintained, GPL/BSD-licensed, and free to use. Neither vendor-locks you: repository formats are documented and both have independent re-implementations.

Where each one wins

Borg wins when…

  • SSH is the only access you have to your remote — no S3 endpoint in sight.
  • Storage cost matters more than restore parallelism; Borg's compression ratio is usually tighter.
  • A non-technical desktop user needs a real GUI — Vorta is first-party-adjacent and mature.
  • You want a repository format that's been in production, largely unchanged, for a decade.

Restic wins when…

  • You want one client that targets disk, SFTP, and S3-compatible storage without switching tools.
  • You're already on Kubernetes — Velero and similar tooling assume a Restic-shaped backend.
  • Some clients run Windows and need a native binary, not WSL.
  • You want to add a second, cheap object-storage remote later without re-architecting the backup command.

Append-only, for both

Both tools support write-once repositories against ransomware, just through different mechanisms. Borg needs borg serve --append-only running behind a restricted SSH key that can add snapshots but never delete them — pruning happens with a separate, more privileged key that stays off the production host. Restic, against an S3-compatible bucket, relies on the bucket's Object Lock or retention-mode setting instead of a client flag — the immutability lives in the storage layer, not in anything the client can be tricked into bypassing.

Which should a beginner pick

If the only thing you have right now is SSH access to a single remote, start with Borg and its Vorta GUI — you'll have a working, well-compressed backup running in about twenty minutes. If you already use, or plan to add, S3-compatible object storage — including most managed vault services — start with Restic: the same command works whether the bucket sits at a vault, at a hyperscaler, or on a machine at a friend's house. Either way, turn on append-only from day one. Retrofitting it later means re-keying every client that writes to the repository, which is a worse afternoon than picking the right tool up front.

Both, supported here

backups.hosting doesn't pick a side. Borg repositories run append-only over SSH, with a separate prune key that never leaves our side of the connection. Restic targets our S3-compatible buckets directly, with Object Lock enforcing the same immutability window at the storage layer instead of a client flag. Pick whichever matches the access you already have — or run both against separate vaults. Retention windows of 14, 30, or 90 days either way, with a real monthly restore test included, not a checkbox.

Restoring a single file, either way

Day-to-day, most restores aren't "rebuild the server" — they're "someone deleted one file three days ago." Both tools make that a two-command job: list the snapshot to confirm the file is actually in it, then extract just that path.

borg extract --list ssh://vault::2026-07-31 var/www/uploads/invoice-2091.pdf
restic -r s3:https://eu.backups.hosting/bucket restore latest --target /tmp/restore --include /var/www/uploads/invoice-2091.pdf

Neither command touches anything else in the repository, and neither requires downtime on the host you're restoring to — a genuine advantage of chunk-addressed backups over a plain tarball, which has to be unpacked in full to reach one file inside it.

Frequently asked

? Is Borg faster than Restic?

It depends on the bottleneck. Over SSH to a single remote, Borg's local caching and tighter compression usually make backups and restores of small, incremental changes faster. Against object storage, Restic's ability to fetch chunks in parallel usually wins on large, cold restores. Neither is faster in every scenario — the network path and remote type decide more than the tool does.

? Which encrypts better?

Both encrypt client-side with AES-256 before anything leaves your machine, and neither has a known practical break. Restic additionally authenticates every chunk with Poly1305, a slightly stronger integrity guarantee than Borg's default mode — in practice, not the factor that should decide your choice.

? Can both do append-only?

Yes. Borg supports a server-side --append-only flag so a compromised client key can add snapshots but not delete or prune them. Restic reaches the same result differently: against S3-compatible storage, the immutability comes from the bucket's Object Lock or retention mode rather than a client flag, so the guarantee lives in the storage layer.

? Which should a beginner pick?

If SSH is the only access you have to your remote, start with Borg and its Vorta GUI — it's the faster path to a working backup. If you want the flexibility to target S3-compatible object storage now or later, start with Restic. Both are supported as first-class targets, so switching later is a config change, not a migration project.

Bring the tool you already trust.

Vaults host Borg over append-only SSH and Restic against S3-compatible buckets, with the same 14/30/90-day immutability windows and monthly restore tests either way.

Related: The 3-2-1 backup rule, explained properly · backups.hosting home