Homelab data grows faster than most people expect. VM images, container volumes, media libraries, configuration files, and database dumps can fill a 4 TB drive in months. When that drive fails or that cloud provider changes its terms, the cost of recovery often exceeds the cost of a proper backup plan. Self-hosted backup solutions give you control, privacy, and predictable pricing without relying on third-party cloud lock-in.
This guide covers practical self-hosted backup software, storage strategies, and automation patterns for homelab environments. The goal is not to recommend one tool as universally best, but to match tools to data types, restore requirements, and available hardware.
Backup Principles Before Tools
Choose software after defining your requirements, not before. Start with three questions:
- What am I protecting, and how often does it change?
- How fast do I need to restore it?
- Where will backups live, and how many copies do I need?
The 3-2-1 rule remains the baseline: three copies of your data, on two different media, with one copy offsite. In homelab terms, that might mean local disk, NAS, and a cheap offsite VPS or cloud bucket.
Backup Software Comparison
Restic
Restic is a fast, encrypted, cross-platform backup tool written in Go. It supports local filesystems, SFTP, S3-compatible storage, and Backblaze B2. Backups are deduplicated and encrypted client-side, so the storage backend never sees plaintext data.
Restic excels at filesystem backups and database dumps. It is less suited for live VM or container images without pre-backup quiescing. The CLI is straightforward, and cron integration is simple.
BorgBackup
Borg is another deduplicating backup tool with strong compression and encryption. It is faster than Restic for some workloads because of its efficient chunking algorithm. Borg is popular in homelab circles and integrates well with systemd timers.
Borg repositories can be stored locally, over SSH, or via Borg-compatible remote servers. For offsite storage, pair Borg with a cheap VPS or BorgBase.
Duplicati
Duplicati provides a web interface, which makes it accessible for users who prefer GUI over CLI. It supports encrypted, deduplicated backups to local disks, FTP, S3, and many cloud providers. Duplicati works well for scheduled folder backups and database exports.
The web UI simplifies restore browsing, which matters if multiple people manage the homelab. Performance is good for small-to-medium datasets; very large backups may benefit from Restic or Borg.
Kopia
Kopia is a newer tool with a modern architecture, policy-based snapshots, and broad destination support including S3, Azure, Google Cloud, and SFTP. It supports application-consistent snapshots through hooks and offers a desktop GUI alongside the CLI.
Kopia is attractive for mixed environments where you want one tool for laptops, servers, and NAS. Its policy engine lets you define retention per source, which simplifies lifecycle management.
Proxmox Backup Server (PBS)
If your homelab runs on Proxmox VE, PBS is the natural backup target. It stores VM and container backups with client-side encryption, inline deduplication, and fast restores through the Proxmox integration. PBS can also serve as a generic backup target via the Proxmox Backup Client.
PBS is specialized for Proxmox workloads. Use it for VM images, CT exports, and datastore backups. Pair it with Restic or Borg for filesystem-level backups of application data inside VMs.
Storage Strategies
Backup storage should outlive the hardware you back up. Cheap USB drives are fine for short-term rotation, but they are not archival media. Consider:
- NAS with RAID for local redundancy
- External USB or Thunderbolt disks for offline rotation
- S3-compatible object storage for offsite copies
- A cheap VPS for encrypted remote repositories
If you use object storage, compare providers by egress fees. A cheap VPS with a large disk can be more economical than cloud storage if you expect frequent restores.
Automation and Scheduling
Manual backups fail because manual steps are skipped. Automate through systemd timers, cron, or built-in scheduler features.
For Restic and Borg, a typical systemd timer runs nightly, excludes cache and temp directories, and rotates snapshots according to retention policy. For databases, schedule logical dumps before the filesystem backup runs.
Monitor backup job results. Send success or failure notifications to Telegram, email, or a home lab dashboard. A backup that ran silently and failed is not a backup.
Restore Testing
Backup value is measured by restore speed and success rate, not backup size or frequency. Test restores quarterly. Restore a VM, a database dump, and a filesystem snapshot to a separate machine or directory. Verify data integrity after restore.
Document restore procedures. If you are unavailable, someone else should be able to recover critical services from documentation alone.
Security Considerations
Encrypt backups at rest and in transit. Use strong passphrases or key files for repository encryption. Store encryption keys separately from backup storage. If an offsite server is compromised, encrypted repositories protect your data.
Limit backup user permissions. The backup account should have read access to source data and write access to the backup target, nothing more. Avoid running backups as root unless the source requires it.
Cost Comparison
| Tool | License | Interface | Best For |
|---|---|---|---|
| Restic | Open source | CLI | Cross-platform filesystem backups |
| BorgBackup | Open source | CLI | Deduplicated Linux backups |
| Duplicati | Open source | Web UI | GUI-friendly scheduled backups |
| Kopia | Open source | CLI + GUI | Policy-based multi-target backups |
| Proxmox Backup Server | Open source | Web UI | Proxmox VM/CT backups |
Recommended Starter Setup
For a typical homelab with Proxmox, NAS, and a few application VMs:
- Use Proxmox Backup Server for VM and container images
- Use Restic inside application VMs for database dumps and config files
- Store offsite copies on a cheap VPS via Borg or Restic
- Automate with systemd timers and cron
- Alert failures through Telegram or email
- Test restores quarterly
This setup covers local speed, offsite redundancy, encryption, and automation without recurring cloud costs.
Final Thoughts
Self-hosted backup solutions require more initial setup than cloud services, but they offer control, privacy, and predictable costs. The best backup system is the one you actually maintain. Start with one data source, automate it completely, verify restores, then expand coverage.
If you want to harden the infrastructure holding your backups, read our guides on choosing a VPS and self-hosted CI/CD runners.