
Bacula
A client-server backup system for networks of mixed machines: a central Director schedules jobs, agents on each machine send files to storage daemons that write disk or tape volumes, and a SQL catalog records where every file went.
- What it is
- Backup & restore
- Type
- Open source
- Made by
- Kern Sibbald and the Bacula community (commercial edition from Bacula Systems)
- License
- AGPL-3.0
- Facts checked
- 24 October 2026
What it is
Bacula splits backup into separate daemons that usually run on different machines. The Director holds the configuration and the schedule and starts each job. A File daemon on every machine to be backed up reads the files the Director asks for and sends them to a Storage daemon, which runs next to the backup device and writes them to volumes: tapes, tape libraries or files on disk. The Director records each job, each volume and each saved file in a catalog kept in PostgreSQL, MySQL or SQLite, and you talk to it through a console, in text or a GUI.
Jobs are written as resources in plain-text configuration files: a Job ties together a Client, a FileSet (what to include and exclude), a Schedule, a Storage device and a Pool, the set of volumes that job may write to. Levels are Full, Differential and Incremental, plus VirtualFull, which builds a new full backup from earlier ones on the storage side without reading the client again. Because the catalog knows which volume holds which version of each file, a restore lets you pick files from any job and asks only for the volumes it needs. Volumes are reused under retention and recycling rules; Bacula treats overwriting a volume as a last resort.
The community edition at bacula.org is free software; Bacula Systems, founded in 2008, sells Bacula Enterprise with extra plugins and support. Version 15.0 added an Amazon S3 cloud driver, a Kubernetes plugin, encryption in the Storage daemon and malware detection on backed-up files.
Why teams pick it
- Built for many machines: one Director schedules jobs for clients on Linux, Unix and Windows and sends them to shared storage
- Real tape support, including tape libraries, alongside disk and cloud volumes
- The SQL catalog tracks every file in every job, so you can find and restore one file from any backup without scanning volumes
- Mature and widely packaged: developed since 2000, with a commercial edition and paid support if you need them
Watch out for
- Hard to set up: the project itself says it is “much more difficult to setup and use than tar or dump” for people new to Unix or to backup software
- Four parts must all be configured and running for a backup to work: Director, File daemon, Storage daemon and catalog database
- Classic full, differential and incremental chains instead of content-defined deduplication; a restore can need a full backup plus every later piece
- Some features, such as NDMP for filers and several application plugins, are only in the commercial Bacula Enterprise
Alternatives
What all backup & restore have in common →Compare side by side →
DRLM (Disaster Recovery Linux Manager)DormantOpen sourceA central server for Relax-and-Recover (ReaR): it runs whole-system backups of many Linux machines over the network, keeps each one as a disk image, and boots a broken machine over PXE straight into a recovery system that restores it.
pgBackRestOpen sourceA PostgreSQL-only backup tool in C: parallel full, differential and incremental backups, WAL archiving and point-in-time restores, to disk, S3, Azure, GCS or SFTP.
VeleroOpen sourceBacks up a Kubernetes cluster’s objects and persistent volumes to object storage, and restores them into the same cluster or a new one.
WAL-GOpen sourceA single Go binary that streams compressed, encrypted Postgres backups and WAL to object storage, and restores them in parallel.How it fits with other technologies
bacula-dir.conf: a nightly job, its file set and its schedule (from the manual) · text
Job {
Name = "NightlySave"
Type = Backup
Level = Incremental # default
Client = rufus-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = DLTDrive
Messages = Standard
Pool = Default
}
FileSet {
Name = "Full Set"
Include {
Options { signature = SHA1 }
File = /
}
Exclude {}
}
Schedule {
Name = "WeeklyCycle"
Run = level=Full sun at 2:05
Run = level=Incremental mon-sat at 2:05
}See it in a real stack
No architecture uses Bacula yet. Drop it into the playground and wire it up yourself.Open playground →Worth exploring
Where it came from2000–2025
Kern Sibbald, who had worked full time on free software since 1999, starting with the UPS daemon apcupsd, began Bacula in January 2000. The first public release, version 1.16, went to SourceForge on April 14, 2002. Its documentation pitches it at people who use tar, dump or bru and want network support, more flexibility or a catalog of what was saved.
From 2006 to March 2015 the Free Software Foundation Europe acted as fiduciary for the developers’ copyrights. In October 2008 Bacula Systems SA was set up to provide commercial support. Two forks followed: Burp, a “friendly fork” released in 2011 by former community developer Graham Keeling, and Bareos, released in February 2013 by another former community developer and other free software users.
The community edition kept a steady release cycle: 9.0 in 2017, 11.0 in 2021, 13.0 in 2022, and 15.0 in 2024 with cloud and Kubernetes support and security work such as Storage daemon encryption and volume protection. The current stable line is 15.0.x, released under the AGPLv3.
Why it’s built this way
- Separate daemons for control, clients and storage
- Splitting the Director, File daemon and Storage daemon lets one server schedule jobs for hundreds of machines while the tape drive or disk sits wherever it is attached.
- A SQL catalog of every file
- Recording jobs, volumes and files in a database lets an administrator find which volume holds a given version of a file and restore just that, instead of reading tapes in order.
- Reuse media only as a last resort
- Bacula is designed not to overwrite whatever tape is in the drive; volumes are recycled only under explicit retention rules, so a careless tape swap doesn’t destroy a backup.
Timeline
- 2000
Kern Sibbald starts the project in January
- 2002
First public release, 1.16, on SourceForge on April 14
- 2007
Bacula 2.0
- 2008
Bacula Systems SA founded to offer commercial support
- 2013
Bareos released as a fork in February
- 2024
Bacula 15.0 adds an S3 cloud driver and a Kubernetes plugin
- 2025
Bacula 15.0.3, the current stable release, in March
Sources6 · facts checked 24 October 2026
- Bacula: What is Bacula? (Director, Console, File daemon, Storage daemon, Catalog; who should use it)
- Bacula 15.0.x manual: Configuring the Director (Job, FileSet, Schedule, Pool, VirtualFull, example configuration)
- Bacula 15.0.x manual: New features in 15.0.0 (Amazon cloud driver, Kubernetes plugin, Storage daemon encryption, malware detection)
- Bacula.org home page (release 15.0.3, Bacula Systems support)
- Bacula: Copyright, trademark and licenses (AGPLv3)
- Wikipedia: Bacula (catalog databases, tape libraries, enterprise-only NDMP)