Greg Ross

Backup and recovery: how I'd back up my homelab

Created

Backup and recovery: how I’d back up my homelab

What I use today, and where it falls short

I already back up the data I could not recreate, with restic among other tools. I wanted to know which tools best cover three needs of a homelab backup setup:

Job Why it matters
G1: large file collections, offsite Snapshots on the same machine don’t survive losing that machine
G2: whole-guest backups Proxmox can back up a whole container or VM; a guest restored in one piece beats rebuilding it
G3: tested restores A backup I have never restored is a hope, not a backup

I reviewed the whole category and then tested the tools that fit these needs, because a comparison table can’t tell me whether a restore works.

The tools

I used the Community Scripts Backup & Recovery category as the candidate list on 2026-10-10: sixteen scripts, three of them marked as testing, plus Proxmox Backup Server, which the site lists under host management and which is the obvious tool for a Proxmox host. Category membership says what I reviewed, not that every entry does the same job. Only eight of the seventeen back up files or guests; three back up databases, and six are archivers, mirrors or sync servers that happen to be filed here.

Resource figures are the installer’s default Debian container allocation, not measured use. Project snapshots come from each repository’s public page on 2026-10-10. “Not described” means I did not find the answer in the project’s own README or features page, not that the answer is no.

Backing up files and guests

Tool What it does Dedup / encryption Offsite targets Restore Upkeep Default CPU / RAM / disk Project snapshot My take
Proxmox Backup Server The Proxmox-native backup server for containers, VMs and host files; incremental after the first run Chunk dedup, compression, client-side authenticated encryption Sync to a second server; S3-compatible object stores as a datastore backend (documented) Restore a guest from the Proxmox UI or CLI; single-file restore; verification runs Low to medium 2 / 2048 MB / 10 GB Version 4.0.10 in the no-subscription repo Tested. The only tool here that restores a Proxmox guest
Backrest Web UI over restic: plans, schedules, snapshot browsing restic: block dedup, compression, AES-256 repository encryption Every restic backend: S3-compatible, B2, Azure, GCS, SFTP, local, rclone Browse snapshots and restore a path in the UI; the restic command line works on the same repository Low; one Go binary 1 / 512 MB / 8 GB 7.5k stars, GPL-3.0, v1.14.1 (2026-07-12) Tested. Same engine I already use, plus a UI
Zerobyte Web UI over restic, can mount network shares as sources restic dedup, compression, encryption S3, GCS, Azure, rclone, SFTP, local UI for schedules and monitoring; restic underneath Low to medium; young 0.x project 2 / 6144 MB / 10 GB 7.0k stars, AGPL-3.0, v0.43.2 (2026-10-03) Near miss: heavy default and extra setup for network shares
Duplicati GUI backup client Block dedup, compression, AES-256 or GPG Many: S3-compatible, B2, SFTP, WebDAV, cloud drives Wizard-style restore by version Low to medium; its own local database 1 / 1024 MB / 10 GB 15.1k stars, v2.4 stable (2026-10-07) Mature, but a second repository format next to restic
Borg-UI Web UI for BorgBackup Borg dedup, compression, encryption Local, SSH and SFTP only Browse archives and restore in the UI Medium; needs an SSH target 2 / 4096 MB / 10 GB 1.7k stars, AGPL-3.0, v2.3.10 (2026-10-06) No S3 targets without extra tooling
Alpine-BorgBackup-Server A Borg server on Alpine that clients back up to; backs up nothing itself Borg, done on the client A target, not a sender borg command line on the client Very low 2 / 1024 MB / 20 GB Borg 13.8k stars, 1.4.5 (2026-07-18) A building block, not a finished tool
Minarca Agent-based backup of PCs and servers to its own server Incremental; encryption not described Its own server Web restore Medium; an agent per machine 2 / 4096 MB / 10 GB Canonical project on GitLab is active (latest tag 7.2.0b6, a beta, 2026-10-09); its GitHub mirror is stale (last push 2025-10-01) An agent per machine; I did not look further
UrBackup Server Client/server file and image backup of PCs and servers File-level dedup across clients; at-rest encryption not described No built-in cloud targets Web UI; image restore from a USB stick Medium; an agent per client 1 / 1024 MB / 16 GB 936 stars, AGPL-3.0, 2.5.38 (2026-08-30) Images machines, not Proxmox guests

Backing up databases

Tool What it does Dedup / encryption Offsite targets Restore Default CPU / RAM / disk Project snapshot My take
Databasus PostgreSQL only: logical dumps and physical incremental backups Compression; AES-256-GCM Local, S3 including R2-style stores, SFTP, rclone and more UI restore, plus a restore verification that restores into a scratch container and checks it 2 / 2048 MB / 8 GB 8.8k stars, Apache-2.0, v3.60.0 (2026-09-22) The one tool that tests restores for me, but only for PostgreSQL
Databasement (testing script) Dumps for MySQL, MariaDB, PostgreSQL, SQL Server, MongoDB, SQLite and more gzip, zstd, optional AES-256; no dedup Local, S3-compatible, Azure, SMB, SFTP UI restore, including scheduled restores 2 / 2048 MB / 8 GB 2.5k stars, MIT, v1.9.1 (2026-10-10) Broad engine support I do not need
Portabase Database backups across many engines, with agents on the database hosts Not described Not described UI 4 / 8192 MB / 15 GB 1.8k stars, Apache-2.0, 1.31.0 (2026-09-29) The largest default footprint of the category

Archivers, mirrors and sync

Tool What it does Default CPU / RAM / disk Project snapshot My take
Bichon Archives mail from IMAP into a searchable store 1 / 1024 MB / 4 GB 2.0k stars, AGPL-3.0, 2.1.1 (2026-10-07) Mail archiving, not backup of my systems
Mail-Archiver Archives, searches and exports mail from several accounts 1 / 2048 MB / 8 GB 2.2k stars, GPL-3.0 (2026-09-22) Same
Open-Archiver Multi-source email archiving 2 / 3072 MB / 8 GB 2.4k stars, AGPL-3.0, v0.6.0 (2026-08-24) Same
Gitea-Mirror Mirrors GitHub repositories into a self-hosted Gitea 2 / 2048 MB / 6 GB 1.5k stars, AGPL-3.0, v3.40.3 (2026-09-26) Needs a Gitea I do not run
Firefox Syncserver (testing script) Mozilla’s Firefox Sync storage server 2 / 3072 MB / 10 GB 1.8k stars, MPL-2.0, 0.23.3 (2026-06-18) Sync, not backup
UniFi Protect Backup (testing script) Copies camera event clips to local or rclone storage 1 / 1024 MB / 4 GB 874 stars, MIT, v0.14.3 (2026-04-07) I run no such system

Which tools fit which job

Job Could do it What I’d do
G1: large file collections, offsite Backrest, Zerobyte, Duplicati (any object store); Borg-UI only to an SSH target Add those collections to the restic job I already run. It needs no new software; a UI is optional
G2: whole-guest backups Proxmox Backup Server is the only candidate. Built-in Proxmox dumps are the no-software option Try PBS, but not on the same machine as the guests it protects (see below)
G3: tested restores No tool tests a whole restore by itself; Databasus does it for PostgreSQL only; PBS verification runs check chunks, not a boot A dated restore drill, repeated. This trial was the first two

What I tested

I picked the top two for these needs: Proxmox Backup Server 4.0.10 (G2) and Backrest v1.14.1 driving restic (G1 and G3). On 2026-10-10 I installed each from its pinned community script into a temporary container on the Proxmox host, and backed up the same synthetic data: 1.08 GB of generated files (empty, small and medium files, compressible text, incompressible binary and an exact duplicate), identical for both tools and byte-for-byte reproducible. I never used my real files or guests, and every backup and restore stayed inside the throwaway test.

For each tool I took an initial backup, an unchanged repeat, and a restore to a fresh path, then compared the restored files to the source by file set, SHA-256 and direct bytes. PBS also got a whole-guest test: a throwaway container with the same data and no network device, backed up twice to a temporary PBS storage entry, restored to a new container ID, booted with no network and checked from inside and outside.

File backups, same data, fresh store each

Measure Backrest (restic) PBS file mode
Initial backup 4.29 s 4.47 s
Unchanged repeat 0.74 s 2.13 s
Restore to a fresh path 1.88 s 5.04 s
Restored data matches source yes, byte for byte yes, byte for byte
Compression restic auto PBS default zstd
Data stored after the first backup, apparent size 269.7 MB (25% of source) 539.3 MB (50% of source)
Data stored after the first backup, allocated on disk 270.5 MB 546.2 MB
Growth for the unchanged repeat, allocated +4 KB +27 KB
Empty store before any backup, allocated 0.2 MB 42 MB

Sizes are decimal megabytes (1 MB = 1,000,000 bytes), measured after flushing and a six-second wait, and “data stored” means the store’s size minus an empty store of the same tool; allocated is what the disk holds, apparent is the sum of file sizes. Both tools deduplicate the unchanged repeat to almost nothing. On this fixture mix restic stored about half what PBS stored. I did not isolate why (restic’s compression and its dedup of the duplicate file are my guesses), and the data includes compressible text, so I would not read “half” as a general ratio. PBS pays a fixed 42 MB for its empty chunk store, which is 65,536 directories.

Whole-guest backup and restore (PBS only)

Measure PBS whole guest
Initial backup 6.21 s
Unchanged repeat 4.40 s, and the job log says it reused 100% of the data
Restore, boot and verify 20.5 s
Restored guest verified yes: booted isolated, files checked inside and compared byte for byte
Data stored after the first backup, apparent / allocated 727.9 MB / 739.7 MB, which includes the guest’s operating system, so it is not comparable with the file table
Growth for the unchanged repeat, allocated +44 KB

Each tool took roughly two to three minutes to install unattended, with no manual steps beyond my config. That is a coarse estimate from watching the containers appear, not a timed measurement, and setting up a repository, a schedule and credentials by hand would take longer.

All numbers are single runs on one quiet test machine with synthetic data, so they show the shape of each tool, not a ranking. They say nothing about a network target, a large photo library, encryption cost or restore from an object store.

What I learned

Seven runs were needed, because each exposed one gap in my own test harness. Every aborted run left no containers or volumes behind. The final run’s automated cleanup passed its own checks. In the earlier runs a few small leftovers (a reordered storage configuration, a client cache file and an empty credentials directory) needed manual removal, which I checked afterwards. I never touched anything outside the test.

What this means for my setup: what I’d do

These are proposals, not a done deal.

Job What I’d do Why
G1 Use restic, which I already run, for large collections too, with the same retention The tool, the repository format and the restore procedure already exist; Backrest or Zerobyte would only add a UI
G2 Proxmox Backup Server is the tool for this; built-in Proxmox dumps are the simpler start PBS restored a whole guest in this trial
G3 Restore drills, repeated, with a checksum comparison No tool does this for me; the harness from this trial is a start

Cost of the offsite part. On 2026-10-10 two object-storage providers’ public price pages listed standard storage at about $0.015 per GB-month (roughly $15 per TB-month) with free downloads on one, and about $6.95 per TB per 30 days on the other, with free downloads up to three times the amount stored and $0.01 per GB beyond. Both give 10 GB free. PBS can also use an S3-compatible bucket as its datastore, and its documentation warns that request charges can add cost; I did not measure those. Pricing changes, so I would re-read the pages before I decide.

What would change this. If I want one interface for every backup, Backrest or Zerobyte beats raw restic. If the guests multiply, the PBS machine matters more. If PostgreSQL restores become the worry, Databasus is the one tool here that tests its own restores. Adopting any of this is a separate project with its own plan.

Limits

I reviewed the pages and repositories listed above on 2026-10-10 and read each community installer at the level of “what does it write on the host”, not line by line. I tested two tools on one data set; I did not test encryption, a remote target, a large library, an object-store restore or Zerobyte, Duplicati, Borg-UI or the database tools. Fit statements for tools I did not install are reasoning from their documentation, not a demonstrated deployment. The temporary containers, storage entry and scratch space were removed after the test.