BackupPC
Released under GPL-3.0, BackupPC provides high-performance backups to a server on self-hosted infrastructure.
Open-source backup infrastructure, honestly reviewed. No marketing fluff, just what you get when you deploy it.
TL;DR
- What it is: GPL-3.0 licensed, server-based backup system that pulls backups from Linux, Windows, and macOS machines onto a central disk with aggressive deduplication [1].
- Who it’s for: Sysadmins and technically capable founders who need to centrally back up a fleet of machines — laptops, servers, workstations — without paying per-seat or per-GB fees [1][5].
- Cost savings: Commercial backup platforms (Veeam, Acronis, MSP360) charge per workstation or per TB. BackupPC is free software — your only costs are a server with disk space. For a 10-machine shop, that’s the difference between $50–$200/month and approximately $0/month [5].
- Key strength: The pooling and deduplication engine is genuinely impressive. The README documents 95 laptops at 3.6GB average full backup each — 1,200GB of raw data compressed to 150GB on disk via pooling [1].
- Key weakness: It’s written in Perl, the web interface looks like it was designed in 2003, it requires manual Perl module installation from three separate GitHub repositories, and the project has 1,569 GitHub stars in 2026 — a number that signals a loyal but small community, not a thriving one.
What is BackupPC
BackupPC is a centralized backup server. You run it on one Linux machine, and it reaches out and pulls backups from any number of client machines — Windows via SMB/Samba, Linux/macOS via rsync or tar over SSH. Clients don’t install anything. The server does the work [1].
The project has been around since the early 2000s, originally written by Craig Barratt and now maintained by a small group of contributors on GitHub. The current v4.x release is the result of a significant rewrite that added a custom rsync protocol (rsync-bpc) and a native Perl extension (BackupPC::XS) for performance [GitHub README].
The core value proposition hasn’t changed in two decades: take deduplicated, pooled, compressed backups of many machines onto one disk, make them browsable and restorable via a web interface, and do it without spending money on per-seat licenses [1][5].
The pooling scheme deserves explanation because it’s the feature that makes BackupPC worth the installation effort. When two machines have an identical file, BackupPC stores it once and hardlinks both backups to the same data. When you back up the same machine on Monday and Tuesday and only 5% of files changed, the Tuesday backup takes 5% of the raw storage it would otherwise need. That 95-laptop example from the README — 1,200GB of theoretical data stored in 150GB — is the result of this pooling working across both machines and across backup generations [1][GitHub README].
What BackupPC is not: it is not a cloud backup tool, not a disaster-recovery-as-a-service product, not a NAS, and not a modern Docker-native application. It is a Perl daemon that runs on your server and uses a CGI web interface that requires Apache.
Why people choose it
The reviews available for BackupPC are thin — the tool has never been flashy enough to generate the blog post traffic that newer tools like Borg, restic, or Duplicati attract. But the signal from what does exist is consistent: people run BackupPC because it works reliably without ongoing cost, and they’ve run it for years [1][5].
The no-client-software argument. LinuxLinks [1] calls this out as a primary feature, and it matters operationally. In a mixed environment — some Windows boxes, some Linux servers, a few Macs — installing and maintaining backup agents on every machine is ongoing work. BackupPC’s approach is to use protocols those systems already have (SMB, SSH + rsync) and pull from the outside. You manage one thing: the BackupPC server.
The economics of disk storage. InfoStor [5] makes the broader case that open source backup tools have reached the maturity point where the old objections (poor docs, unreliable releases, no support) no longer hold for the leading options. BackupPC benefits from this: disk has gotten cheap enough that storing multiple full backups with retention policies (weekly fulls, daily incrementals, exponential expiry going back months) is practical on commodity hardware. A 4TB drive costs less than two months of most commercial backup subscriptions [5].
The “it just runs” factor. The unRAID community template list [3] includes BackupPC as a standard option alongside established self-hosted tools, which reflects that it has a stable enough reputation to be packaged and maintained by third-party community members. That’s a weak but real signal of longevity.
What doesn’t appear in the reviews: enthusiasm. No one is writing blog posts about how BackupPC transformed their workflow or has a cleaner UI than the competition. The reviews are uniformly factual and respectful, not excited. That’s the honest picture — this is a reliable workhorse, not a tool people evangelize.
Features
Based on the README and LinuxLinks documentation [1][GitHub README]:
Core backup engine:
- Full and incremental backups with configurable schedules [1]
- Multi-level incremental support [1]
- Exponential expiry — keep N recent weeklies, plus older backups spaced 2, 4, 8, 16 weeks apart [1]
- Parallel backup execution — multiple machines can back up simultaneously [1]
- Pooling and hardlinking: identical files stored once, shared across backups and machines [1][GitHub README]
- Optional compression on pooled data (gzip) [1]
- Configuration per-machine or system-wide [1][GitHub README]
Transport protocols:
- SMB via Samba — for Windows clients without installing anything [1][GitHub README]
- rsync over SSH/RSH/NFS — for Linux and macOS [1][GitHub README]
- tar over SSH/RSH/NFS — alternative for Unix clients [1][GitHub README]
- rsync can also back up Windows if rsyncd/Cygwin is installed there [GitHub README]
- DHCP client support (uses DNS, Active Directory, or LDAP for name resolution) [1][GitHub README]
Web interface:
- Apache/CGI-based management interface [1]
- Admins: view logs, current status, configuration, force or cancel backups [1]
- Users: browse any backup, initiate and cancel their own backups [GitHub README]
- Restore options: download individual files, download as Zip or tar archive, or direct restore to client machine via SMB/rsync/tar [1][GitHub README]
Alerting:
- Configurable email reminders to users whose machines haven’t been backed up recently [1][GitHub README]
- Email timing and content configurable [1]
What’s missing or gated:
- No native encryption at rest (pool files are unencrypted on disk — you need filesystem-level encryption separately)
- No web-based initial setup wizard — configuration is via Perl config files
- No mobile app, no REST API, no webhook integration
- Tape backup is not built in — the README notes you can periodically back up the BackupPC server to tape separately [GitHub README]
- v4.x packages are not available for most Linux distros — the README explicitly calls this out and requests help [GitHub README]
Pricing: the math
BackupPC has no SaaS tier. There is no hosted version. The GPL-3.0 software costs $0 and the only ongoing cost is your server and disk.
BackupPC total cost:
- Software: $0 [GitHub README]
- Server: a used machine or VPS, $0–$30/mo depending on what you already have
- Storage: $0.02–$0.05/GB/month on cloud block storage, or a $100–$200 one-time purchase for a multi-TB drive if self-hosted on bare metal
What you’d pay for commercial alternatives (data not available in provided sources, general market rates):
- Veeam Essentials: typically $300–$800/year for small environments (contact sales for current pricing)
- Acronis Cyber Protect: approximately $50–$100/machine/year (varies by tier)
- MSP360 (CloudBerry): subscription plus storage costs, typically $3–$10/machine/month
For a 10-machine office backing up to a local server with 8TB of disk, a realistic BackupPC cost is around $150–$300 one-time for the drive, then $0/month after. The equivalent in commercial software is $500–$1,000+ per year. Over three years, that’s $1,500–$3,000 saved — and your data never leaves your building [5].
The catch: that math only works if you have someone technical enough to maintain it. BackupPC requires Perl competency to debug problems, and there is no paid support contract you can call.
Deployment reality check
This is where BackupPC earns its honest score. The installation is not smooth by modern standards.
What the README actually asks you to do:
- Download BackupPC from GitHub releases
- Separately download
BackupPC::XS(a Perl module) from a second GitHub repository - Separately download
rsync-bpc(a patched rsync) from a third GitHub repository - Run
perl configure.plas root and answer prompts - Configure Apache to serve the CGI interface
That’s four separate software components from three different repositories before you have a working system. None of this is Docker Compose with a single docker-compose up. The unRAID community template [3] wraps BackupPC in a container, which reduces this — but you’re then depending on a community-maintained Docker image, not the official project.
What you actually need:
- A Linux server (tested on Linux and Solaris per the README) [GitHub README]
- Apache with CGI enabled
- Perl 5.x with various modules
- Samba/smbclient for Windows client backups
- Sufficient disk — plan for 2–3x your raw data size initially, pooling reduces this over time
- SSH access to Linux/macOS clients (or SMB for Windows)
What can go sideways:
- The v4.x packaging gap: the README explicitly says packages for most Linux distros don’t exist for v4.x and asks community members to step up [GitHub README]. This means you’re installing from source on most distros.
- Perl dependency hell:
BackupPC::XSis a compiled Perl extension — on newer Linux versions with current gcc and Perl versions, the build can fail without obvious error messages. - The CGI web interface requires Apache specifically. If you’re a Nginx shop, you’ll need to run Apache alongside it or set up a proxy.
- Configuration is done via Perl hash syntax in config files. Syntax errors produce cryptic log output, not helpful error messages.
- The GitHub repository has 1,569 stars and the last commit activity suggests maintenance mode rather than active development. Bug fixes come slowly.
Realistic setup time for a competent Linux sysadmin: 2–4 hours for a working installation, another 1–2 hours to configure clients and verify backups are running. For someone less experienced with Perl and Apache: budget a full day and expect to spend time in forums.
Pros and cons
Pros
- Free, forever. GPL-3.0 — no per-seat, per-GB, or per-execution pricing. No vendor who can raise your bill [GitHub README][5].
- Exceptional storage efficiency. The pooling and deduplication system is genuinely sophisticated. Identical files across machines and across backup generations are stored once. That 95-laptop/150GB example is not marketing — it’s the design working [1][GitHub README].
- No client software. Uses SMB, SSH+rsync, or SSH+tar — protocols every machine already speaks. Nothing to install, update, or break on client machines [1][GitHub README].
- Flexible restore options. Browse any backup at any point in time, download individual files, download archives, or push directly back to the client. Most backup systems make restore harder than backup; BackupPC’s restore UI is functional [1][GitHub README].
- DHCP-aware. Supports laptops with dynamic IPs as long as they’re registered in DNS/AD/LDAP — this is a practical feature for offices where laptops come and go [1][GitHub README].
- Battle-tested longevity. The project has been running in production environments for over two decades. The bugs it has are known; the architecture has been stress-tested at scale [1][5].
- Per-machine configuration. You can have different backup schedules, retention policies, and include/exclude lists for each machine. The system-wide defaults plus per-host overrides model is clean [1][GitHub README].
Cons
- Installation is a Perl project from 2003. Three separate source downloads, manual Perl module compilation, Apache CGI setup — this is not a modern deployment experience [GitHub README].
- No official packages for most distros. The README admits this and asks for help. You’re building from source or trusting a community Docker image [GitHub README].
- The web interface is dated. The CGI interface works, but it has the aesthetic of mid-2000s web software. This matters only until it doesn’t — administrators use it infrequently — but it’s not going to impress anyone.
- No encryption at rest. Pool data sits on disk unencrypted. If someone physically accesses the backup server, they access the data. You need to handle encryption at the filesystem or disk level separately.
- Effectively in maintenance mode. 1,569 GitHub stars, slow commit velocity, no dist packages for v4.x. The project isn’t dead, but it’s not growing either [GitHub].
- Perl. Debugging BackupPC problems means reading Perl. If you don’t have Perl competency on your team, you’re Googling error messages into forums and hoping someone wrote about your specific version mismatch.
- No cloud integration. BackupPC backs up to a local disk. If that server catches fire, your backups burn with it. You can back up the BackupPC server to something else, but that’s an additional layer you design yourself.
- No REST API, no modern hooks. You cannot trigger or query BackupPC from other systems programmatically in any clean way.
Who should use this / who shouldn’t
Use BackupPC if:
- You’re a sysadmin or technical founder with Perl/Linux competency managing 5–50+ machines and you want a zero-recurring-cost backup solution.
- You need to back up Windows, Linux, and macOS machines from a single server without installing agents.
- Disk efficiency matters — you’re backing up many machines that share a lot of common files, and pooling will dramatically reduce your storage footprint.
- You want complete data sovereignty: backups on your hardware, in your facility, accessible to no one but you.
- You’re comfortable doing initial setup work in exchange for never paying a backup subscription.
Skip it (consider Borg or restic instead) if:
- You want modern tooling: CLI-first, Docker-native, actively developed with a large community. Borg and restic are what BackupPC would be if rewritten today [1].
- You need encryption at rest as a first-class feature, not something you bolt on.
- You’re backing up 1–3 machines rather than a fleet — the complexity overhead isn’t justified for small setups.
Skip it (consider Duplicati or Kopia instead) if:
- You want a GUI-first backup tool that non-technical users can operate on their own machines [1].
- You need cloud backup targets (S3, Backblaze B2, Google Drive) as primary destinations.
Skip it (consider UrBackup instead) if:
- You want a server/client backup architecture with a modern web interface and image-level backups, and you don’t want to maintain a Perl installation [1].
Skip it (stay on commercial software) if:
- Your compliance team requires vendor support contracts or SOC 2 certifications.
- Nobody on your team wants to own a Linux server running Perl.
- You need bare-metal/image-level restores — BackupPC does file-level backup, not system imaging.
Alternatives worth considering
From LinuxLinks’ related software list and the AlternativeTo data [1][2]:
- BorgBackup — the modern equivalent. Deduplication, encryption, compression, written in Python, actively developed, large community. If you’re starting fresh, Borg deserves serious consideration.
- restic — similar to Borg, faster in benchmarks, excellent cloud backend support. CLI-first, no web UI built in.
- UrBackup — the closest to BackupPC in philosophy (server pulls from clients) but with a modern web interface and active development. Supports both file and image backups.
- Duplicati — encrypted, GUI-friendly, supports cloud backends, targets individual machines rather than a fleet.
- Bacula — more complex than BackupPC, enterprise-grade, supports tape, requires more configuration. The right tool for large environments that need tape integration.
- Kopia — newer, fast, encrypted, cross-platform, good UI. Growing community.
- Duplicacy — commercial with a free tier for personal use, strong deduplication.
For a non-technical founder with a small team: UrBackup or Duplicati are more practical starting points than BackupPC. For a sysadmin managing a fleet: Borg with a management layer (Borgmatic, Vorta) is the modern equivalent with better tooling. BackupPC’s niche in 2026 is organizations that already run it and have no compelling reason to migrate.
Bottom line
BackupPC is a 20-year-old backup system that still works. Its pooling algorithm is genuinely clever, its no-client-agent architecture is operationally convenient, and its price is $0. Those things haven’t changed. What has changed is the surrounding ecosystem: BorgBackup, restic, and UrBackup offer more modern alternatives with better tooling, active communities, and encryption at rest by default. BackupPC’s 1,569 GitHub stars versus Borg’s 11,000+ tell the adoption story clearly.
If you’re a sysadmin with an existing BackupPC installation, there’s no urgent reason to migrate — it’s stable and it works. If you’re starting fresh and choosing a backup system for a fleet of machines in 2026, you should evaluate UrBackup and Borg before settling on BackupPC. The setup complexity and the Perl dependency are real costs, and the alternatives have largely closed the gap on BackupPC’s signature deduplication advantage. That said: if you do deploy it and invest the setup time, you’ll get reliable, storage-efficient, agentless backups that cost nothing per month, indefinitely. For the right operator, that’s still a compelling deal.
Sources
- LinuxLinks — “BackupPC - high-performance, enterprise-grade system for backup”. https://www.linuxlinks.com/BackupPC/
- AlternativeTo — “Minarca: Self-hosted opensource software to backup all your data” (lists BackupPC as an alternative). https://alternativeto.net/software/minarca/about/
- squidly271.github.io — “unRaid App List” (BackupPC listed as community template). https://squidly271.github.io/forumpost0.html
- InfoStor — “The New Case For Open Source Data Protection” (Nov 26, 2024). https://www.infostor.com/display_article/330690/23/artcl/display/none/1/the-new-case-for-open-source-data-protection/
Primary sources:
- GitHub repository and README: https://github.com/backuppc/backuppc (1,569 stars, GPL-3.0 license)
- Official documentation site: https://backuppc.github.io/backuppc/
- BackupPC::XS module: https://github.com/backuppc/backuppc-xs/releases
- rsync-bpc (patched rsync): https://github.com/backuppc/rsync-bpc/releases
Features
Data & Storage
- Backup & Restore
Related Self-Hosting Tools Tools
View all 212 →Rustdesk
110KOpen-source remote desktop software with self-hosted servers — a secure alternative to TeamViewer and AnyDesk with full data sovereignty.
Ladybird
61KLadybird is a truly independent web browser built from scratch, with no code from Chrome, Firefox, or Safari. Backed by a non-profit foundation.
TipTap
36KA suite of content editing and real-time collaboration tools. Build editor experiences like Notion in weeks, not years.
Awesome Sysadmin
33KA curated list of amazingly awesome open-source sysadmin resources.
restic
33KBackups done right. A modern backup program for Linux, BSD, Mac and Windows with strong encryption.
Homepage by gethomepage
29KA modern, fully static, fast, secure, highly customizable application dashboard with integrations for over 100 services.