# Restic or Borg: which is better for offsite backups to your own server?

> Restic or Borg for offsite backups to your own server: 2026 versions, server needs, encryption, append-only mode, and where Kopia fits. Crypto, no KYC.

- URL: https://basalthold.com/restic-vs-borg/
- Last updated: 2026-11-02
- Publisher: Basalthold (https://basalthold.com)

Versions and features from each project's own pages, what each one needs on the server, how they encrypt, and how they keep old backups out of an attacker's reach.

**Quick answer — Restic or Borg: which is better for offsite backups to your own server?**

For offsite backups to your own server, restic is better for mixed systems and many storage backends; Borg is better for Linux-to-Linux over SSH. Both deduplicate, encrypt and offer an append-only mode. Current versions on 2 November 2026: restic 0.19.1, Borg 1.4.5. **Basalthold** rents the server from $110.99 per 30 days, crypto only, no KYC.

## How do restic, Borg and Kopia compare in 2026?

|  | restic | Borg | Kopia |
| --- | --- | --- | --- |
| Latest stable release | 0.19.1, 5 July 2026 | 1.4.5, July 2026 | 0.23.1, 16 June 2026 |
| Next major version | — | 2.0 in beta: 2.0.0b25, 27 September 2026 | — |
| What the server needs | SSH for SFTP, or rest-server; no restic on the server | SSH, with Borg installed on the server (preferred) | SFTP, or a Kopia Repository Server |
| Other backends | S3 and S3-compatible, B2, Azure, Google Cloud, Swift, rclone | Local paths, or remote filesystems you mount | S3 and S3-compatible, B2, Azure, Google Cloud, Google Drive, WebDAV, rclone |
| Encryption | Always on: AES-256 counter mode, Poly1305-AES | Chosen at `borg init`: AES-CTR-256 with HMAC-SHA256 or BLAKE2b; `none` exists | Always on: AES-256 or ChaCha20, file names included |
| Compression | Yes, with repository format 2 (restic 0.14.0 or newer) | lz4 by default; zstd, zlib, lzma | pgzip, s2, zstd |
| Old backups out of a client's reach | rest-server `--append-only` | `borg serve --append-only`, or `append_only = 1` | S3 Object Lock, or keys without delete rights |
| Windows | Yes, via Scoop or WinGet | Not native; WSL and Cygwin experimental | — |
| Official graphical interface | No | No | Yes |

From each project's release page and documentation, read on 2 November 2026. Borg 1.4.5 is the release its GitHub page marks Latest; its changelog dates it 19 July 2026. A dash means the point was not checked.

## What does the server need for restic, and for Borg?

restic needs nothing of its own on the server. Its documentation asks for an SSH server that knows your public key, since a password prompt would stop automatic backups. For an append-only target, run restic's rest-server instead; it listens on port 8000 by default.

Borg's quickstart says remote repositories are fastest and easiest when Borg is installed on the remote host. The client then talks to `borg serve` over SSH. Without Borg on the server, you can mount the remote filesystem, but the docs warn that not every filesystem is stable enough for backups.

**restic turns any SSH account into a backup target; Borg asks for one server package and gives a tighter forced command.**

*One repository each, on a rented server at 203.0.113.10*

```bash
# restic over SFTP: only SSH and a key on the server
restic -r sftp:backup@203.0.113.10:/tank/restic init

# Borg over SSH: Borg 1.4.5 installed on both sides
borg init --encryption=repokey-blake2 ssh://backup@203.0.113.10/tank/borg

# On the server, ~backup/.ssh/authorized_keys pins the key to one repository:
command="borg serve --append-only --restrict-to-path /tank/borg",restrict ssh-ed25519 AAAA... client@laptop
```

## How do restic and Borg encrypt, and who holds the key?

Both encrypt on the client, so the server stores only ciphertext. They differ in how much choice they give you.

- **restic** encrypts everything in the repository with AES-256 in counter mode and authenticates it with Poly1305-AES. Your password unlocks the key through scrypt. Even the local cache is encrypted.
- **Borg** sets the mode at `borg init`. `repokey` keeps the encrypted key in the repository; `keyfile` keeps it on the client. Borg's docs say to export the key with `borg key export` and store it away from the backed-up system.
- **Kopia** has no unencrypted mode. It encrypts contents and file names with AES-256 or ChaCha20.

The wider picture is on [client-side encryption for backups](https://basalthold.com/client-side-encrypted-backups/ "What each backup tool encrypts before upload, and where the key lives").

## Which one keeps old backups safe if the client is hacked?

Both, if you set it up. rest-server's `--append-only` mode allows new backups but prevents deletion and modification of existing ones. Borg's append-only mode refuses to overwrite or delete committed data.

Borg documents the catch. Prune and delete still run in append-only mode; they only mark data as deleted. The next write in normal mode, such as a prune from your admin machine, removes that data for good. So run `borg check` before any pruning, and keep a hard-link copy if you suspect an attack. Recipes for both tools are on [making backups immutable on your own server](https://basalthold.com/immutable-backups/ "Append-only repositories, Veeam, object lock and ZFS snapshots").

## Is Borg 2 ready, and what happens to Borg 1 repositories?

Not for production yet. Borg 2.0 is in beta: 2.0.0b25 came out on 27 September 2026, and the 1.4 series remains the release marked Latest. Borg 2 uses a new repository format. `borg transfer --from-borg1` copies archives from a Borg 1.x repository into a new Borg 2 one. Borg 2 must then run on both client and server.

**Start new offsite repositories on Borg 1.4.5 today, and plan the move to Borg 2 as a transfer, not an upgrade in place.**

## Where does Kopia fit?

Kopia is the third option, and the one with an official graphical interface. Version 0.23.1, released on 16 June 2026, fixes a rare race condition that could lead to data loss, and the maintainers recommend upgrading. It writes to SFTP, S3-compatible storage and several clouds, or to a Kopia Repository Server you run yourself. Its ransomware guide relies on S3 Object Lock in compliance mode, or on access keys without delete rights. Pick Kopia when the people running backups want a window, not a shell.

## How big a server do restic or Borg need?

Size the pool for one full copy of your data, plus the changed blocks of every version you keep. Deduplication and compression shrink both; how much depends on your data. Then add parity: ten 10 TB drives in RAIDZ2 leave 80 TB for the repository.

**On 2 November 2026, no-KYC hosts taking crypto charged a median $6.70 per TB a month from 36 TB.** From 72 TB, the median fell to $4.86. Hold 40 costs $5.02/TB and Hold 100 $3.77/TB, raw. Every term is on [the hold price list](https://basalthold.com/pricing/ "Every hold, term and city, with prices"). For whole virtual machines, [an offsite Proxmox Backup Server](https://basalthold.com/proxmox-backup-server-offsite/ "Datastore on ZFS, sync jobs and encryption") is the closer fit.

## Which one should I pick?

| Your situation | Pick |
| --- | --- |
| Windows, macOS and Linux clients, one shared target | restic |
| The same repository on your server and in S3 or B2 later | restic |
| Linux servers backing up over SSH, with tuned compression | Borg 1.4.5 |
| A forced command that pins each client key to one path | Borg 1.4.5 |
| People who need a graphical interface | Kopia |
| Whole Proxmox VE virtual machines | Proxmox Backup Server |

## What else do people ask about restic and Borg?

### Can I use restic and Borg on the same rented server?

Yes. Give each tool its own account and directory on the data pool. restic needs only SFTP access; Borg needs the borg package and a forced `borg serve` command per key.

### Is restic or Borg faster?

Basalthold has run no speed tests of its own, and speed depends on your data, CPU and link. Both send only new chunks after the first run, so later backups are much smaller than the first.

### Do I need restic installed on the server?

No. restic works over plain SFTP. Install rest-server only if you want its append-only mode or an HTTP backend.

### Can Basalthold read my restic or Borg repository?

Not when it is encrypted, which is always true for restic. Borg encrypts in every mode except `none` and `authenticated`. You can encrypt every data drive with LUKS or ZFS native encryption; the keys stay with you and nobody on the team ever asks for them.

### Which hold suits a restic or Borg repository?

Hold 24 mirrors two drives for a small repository. Hold 160 has the smallest price per TB of the four holds, $3.50/TB. Payment is crypto only, with no KYC.

**One server for your restic or Borg repositories** Hold 40: AMD Ryzen 5 3600 (6 cores / 12 threads), 64 GB DDR4, 4 × 10 TB hard drives (40 TB raw) plus 512 GB NVMe for the system, 1 Gbit/s port with 60 TB of traffic per 30 days, 1 IPv4 and an IPv6 /64, for $201.09/30 days. Crypto, no KYC. [Rent Hold 40 in Amsterdam](https://basalthold.com/app/checkout/?plan=hold-40&location=nl-ams&lang=en) · [Rent Hold 100 in Bucharest](https://basalthold.com/app/checkout/?plan=hold-100&location=ro-buh&lang=en)

## Sources

1. [restic releases (0.19.1, 5 July 2026)](https://github.com/restic/restic/releases) — restic on GitHub (read 2026-11-02)
2. [Preparing a new repository](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html) — restic documentation (read 2026-11-02)
3. [References: design and cryptography](https://restic.readthedocs.io/en/stable/100_references.html) — restic documentation (read 2026-11-02)
4. [Installation](https://restic.readthedocs.io/en/stable/020_installation.html) — restic documentation (read 2026-11-02)
5. [rest-server README (--append-only, --private-repos)](https://github.com/restic/rest-server) — restic on GitHub (read 2026-11-02)
6. [Borg releases (1.4.5; 2.0.0b25)](https://github.com/borgbackup/borg/releases) — BorgBackup on GitHub (read 2026-11-02)
7. [borg init: encryption modes (1.4.5)](https://borgbackup.readthedocs.io/en/stable/usage/init.html) — BorgBackup documentation (read 2026-11-02)
8. [Additional notes: append-only mode (1.4.5)](https://borgbackup.readthedocs.io/en/stable/usage/notes.html) — BorgBackup documentation (read 2026-11-02)
9. [Quick Start (1.4.5)](https://borgbackup.readthedocs.io/en/stable/quickstart.html) — BorgBackup documentation (read 2026-11-02)
10. [Installation (1.4.5)](https://borgbackup.readthedocs.io/en/stable/installation.html) — BorgBackup documentation (read 2026-11-02)
11. [borg transfer (2.0 development documentation)](https://borgbackup.readthedocs.io/en/master/usage/transfer.html) — BorgBackup documentation (read 2026-11-02)
12. [Kopia releases (v0.23.1, 16 June 2026)](https://github.com/kopia/kopia/releases) — Kopia on GitHub (read 2026-11-02)
13. [Repositories](https://kopia.io/docs/repositories/) — Kopia documentation (read 2026-11-02)
14. [Features](https://kopia.io/docs/features/) — Kopia documentation (read 2026-11-02)
15. [Ransomware protection](https://kopia.io/docs/advanced/ransomware-protection/) — Kopia documentation (read 2026-11-02)

---

Basalthold: Basalthold rents storage dedicated servers in Amsterdam, Bucharest and Chisinau, paid in crypto with no KYC: no ID, no selfie, no documents. Each server is a whole physical machine with 24 TB to 160 TB of hard drives for one customer, delivered with blank data drives and root access, for backups, archives, file sync and self-hosted object storage. On 2 November 2026, prices ran from $110.99 per 30 days for 24 TB to $561.39 for 160 TB ($3.50 per raw TB). It is run by DomaineGoat LLC, a company registered in Panama, keeps no logs and never asks for your encryption keys.
