Learn Bacula - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Learn Bacula - Pre-Requisites Skill & Setup Environment

Before touching bconsole and bacula-dir, you need to master basic Linux admin (daemons, users, file permissions), understand the concept of full/incremental backups and TCP networking, and prepare a server with Bacula 15.0.4 and the File Daemon client. In this episode the entire environment is visualized and verified.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Introduction

Welcome to the Learn Bacula series! This series will take you through mastering Bacula — an enterprise open source backup suite that manages backups for cross-platform servers and workstations with a distributed architecture: Director, Storage Daemon, File Daemon, and Catalog. In total there are 23 episodes arranged across six phases, from conceptual foundations to large-scale production readiness.

Before writing any bacula-dir.conf configuration, there are basic skills and tools you must prepare. Why are these prerequisites important? Because Bacula consists of many daemons that communicate over the network, manage file permissions, and work directly with a database. Without understanding these layers, you will struggle when backups fail, daemon authentication is rejected, or the catalog becomes locked.

Episode 0 is your roadmap: we make sure the basic skills are in place, map out the server architecture to be built, and verify the environment for the first time.

Required Basic Skills

Linux Admin: Daemon, User, and File Permission

Bacula runs as daemons (bacula-dir, bacula-sd, bacula-fd) that are usually run by a dedicated user (for example bacula) or root. You must understand init systems (systemd), users/groups, and file permissions. A real example: config files contain daemon passwords, so their permissions must be kept strict. Check these basics first:

Check user, daemon, and permissions
id bacula
systemctl status bacula-dir
ls -l /etc/bacula/

Usually /etc/bacula/*.conf belongs to root:bacula with mode 0640, and some sensitive files use 0600. We cover hardening in detail in episode 14.

Basic Networking: TCP/UDP and Ports

The three Bacula daemons connect to each other over the network. The Director listens on port 9101, the Storage Daemon on 9102, and the File Daemon on 9103. You need to understand the concepts of ports, firewalls, and some basic troubleshooting with ss/netstat — because in production, the Director and Storage Daemon usually run on a server separate from the client File Daemons.

Backup and Restore Concepts

Understand the difference between a full backup (copying all data), an incremental backup (changes since the last backup), and a differential backup (changes since the last full backup). Bacula stores these files on Volumes (media: files on disk or tape) and records the metadata of every file in the Catalog (database). The concepts of retention and rotation will determine how much media you need — we break that down in episodes 6 and 7.

Software and Hardware to Prepare

Server: Director + Storage Daemon + Catalog

For this series we use Bacula 15.0.4 (released 23 May 2026) on a Linux distribution (Debian/Ubuntu/RHEL). One minimum server holds three components: Director (control), Storage Daemon (media), and Catalog (metadata database). Recommended baseline specs:

Check server specs
uname -r
nproc
free -h
df -h /var/lib/bacula

Disk space in /var/lib/bacula (or whichever storage location you choose) is the most important part — because all backup volumes will live there.

Catalog Database

Bacula Community supports PostgreSQL, MySQL, and SQLite. For production, choose PostgreSQL or MySQL; SQLite is fine for a small lab. If you have never managed a database, the learn-sql-postgresql series will be very helpful.

Client: File Daemon

In the early episodes, one client is enough: the server itself can be the client (backing up local directories). For cross-platform practice, prepare one more node (Linux, Windows, or macOS) as a File Daemon client. Clients are optional at the start — but without a second client, you won't yet feel the power of Bacula's distributed architecture.

Storage: Disk or Tape

Start with disk storage (a directory on the filesystem) because it is the simplest. Tape libraries and autoloaders are covered in episodes 11 and 19 — don't rush to buy hardware before understanding the concepts of pools and volumes.

Environment Verification

Before moving to episode 1, make sure the base packages are available:

Verify basic tooling
which curl wget postgres mysql sqlite3
sudo apt list --installed 2>/dev/null | grep -i bacula

If the Bacula packages are not there yet, that's fine — full installation happens in episode 3. What matters now: you understand where each component will live and why the architecture is separated.

Note

Bacula has two editions: Community (open source AGPL, complete backup core) and Enterprise (commercial, with application/VM plugins, dedup, and encryption). This series uses Community as the foundation, with Enterprise discussed in episode 18.

Prerequisite Summary

Here's what you've prepared in episode 0:

  • Linux skills: daemons, users, file permissions, TCP networking, and backup/restore concepts.
  • Server: Linux with Bacula 15.0.4, running Director + Storage Daemon + Catalog.
  • Database: PostgreSQL/MySQL for the production catalog, SQLite for a lab.
  • Client: File Daemon (optional at the start) for cross-platform practice.
  • Storage: a disk directory first; tape comes in the advanced phases.

If anything is missing, complete it before continuing. The next 22 episodes will go far more smoothly with this strong foundation.

Closing

Key takeaways:

  • Bacula consists of Director, Storage Daemon, File Daemon, and Catalog, all connected over the network.
  • Required skills: Linux admin (daemons, users, permissions), TCP networking, and backup/restore concepts.
  • Prepare one Linux server for the three main components plus the catalog database.
  • Start with disk storage; tape follows in episode 11.
  • Bacula Community (AGPL) is the foundation of this series; Enterprise is discussed in episode 18.

In the next episode, episode 1, we'll cover the history, background, and why you need Bacula — from its birth in 2000 as a fork of the V6 project, the AGPL license for Community and a commercial license for Enterprise, to the reasons why its distributed architecture and tape support have kept it alive for more than two decades. Make sure your environment is ready, because the Learn Bacula journey has just begun!

Learn Bacula - Pre-Requisites Skill & Setup Environment | Learn Bacula