Starting point and goal
Part 1 built the Bareos server with Director, Storage Daemon, PostgreSQL catalog, bconsole and WebUI. This part connects client01.example.test as a separate Debian 13 system over the private lab network.
An installed File Daemon is not yet an onboarded client. Matching resource names and secrets, a reachable private address, valid Director configuration and an executed backup job provide the required evidence.
- Bareos server: bareos01.example.test at 192.168.77.10.
- Client: client01.example.test at 192.168.77.11.
- Bareos community build 25.1.2~pre49.d5742f640 from the official Debian 13 repository.
- Administrative lab account: fone-rumboldm with fone-admins.
- Test scope: connection, estimate and a full backup of isolated test data.
1. Add the repository and install the File Daemon
Client and server should use compatible Bareos channels. The lab therefore uses the same official current repository on both hosts. Review the installer and record the package version actually installed.
sudo apt-get updatesudo apt-get install -y ca-certificates curl gnupgcurl -fsSLo /tmp/add_bareos_repositories.sh https://download.bareos.org/current/Debian_13/add_bareos_repositories.shless /tmp/add_bareos_repositories.shsudo sh /tmp/add_bareos_repositories.shsudo apt-get updatesudo apt-get install -y bareos-filedaemondpkg-query -W bareos-filedaemon bareos-common
2. Configure the client identity and Director access
The File Daemon client resource uses a unique name and binds only to the private lab address. Plugin Names is deliberately empty because the test does not require plugins.
The Director resource authorizes bareos-dir with a dedicated random secret. The same secret is configured in the Director client resource and belongs in secret management. The real connection negotiated TLS 1.3 with CHACHA20-POLY1305.
sudoedit /etc/bareos/bareos-fd.d/client/myself.confClient {Name = client01-fdFD Address = 192.168.77.11Plugin Names = ""}sudoedit /etc/bareos/bareos-fd.d/director/bareos-dir.confDirector {Name = bareos-dirPassword = "<SECRET_FROM_SECRET_MANAGEMENT>"}
3. Add the client resource to the Director
The Director needs the counterpart to the File Daemon configuration. Name, address and secret must match exactly. Use an internally resolvable address or fixed private IP, never localhost for a remote client.
sudoedit /etc/bareos/bareos-dir.d/client/client01-fd.confClient {Name = client01-fdAddress = 192.168.77.11Password = "<SAME_SECRET_AS_ON_CLIENT>"Maximum Concurrent Jobs = 5}
4. Define a limited FileSet
The first acceptance test protects a small controlled directory rather than the whole system. This makes the expected files explicit and limits the impact of a wrong include path. ACL and extended-attribute support are enabled.
sudo install -d -m 0755 /srv/bareos-test/subdirectoryprintf "%s\n" "ForgeOne Bareos client onboarding test" | sudo tee /srv/bareos-test/README.txtsudoedit /etc/bareos/bareos-dir.d/fileset/client01-test.confFileSet {Name = "client01-test"Include {Options {Signature = XXH128Acl Support = yesXattr Support = yes}File = /srv/bareos-test}}
5. Connect the backup job to the existing JobDefs
The job reuses the verified DefaultJob resource and overrides client, FileSet and Full pool. A production schedule should only be enabled after RPO, maintenance window and retention have been agreed.
sudoedit /etc/bareos/bareos-dir.d/job/backup-client01.confJob {Name = "backup-client01"JobDefs = "DefaultJob"Client = "client01-fd"FileSet = "client01-test"Pool = "Full"}
6. Validate both configurations before restart
Validate the File Daemon first and the Director second. Reload services only after clean checks. Deprecated warnings also need correction; the lab removed one obsolete File Daemon directive before acceptance.
sudo bareos-fd -tsudo systemctl restart bareos-filedaemonsystemctl is-active bareos-filedaemon# Auf dem Directorsudo -u bareos bareos-dir -tsudo systemctl reload bareos-director
7. Verify connection and selection with bconsole
status client verifies authentication, protocol and reachability. estimate evaluates the FileSet without writing a backup. The lab negotiated Immediate TLS with TLS 1.3 and reported five filesystem entries with 135 bytes of payload.
sudo -u bareos bconsolestatus client=client01-fdestimate job=backup-client01 level=Fullquit
8. Run the full backup and read the result
The first full job used isolated test data. Bareos created volume Full-0001, wrote five entries and reported OK for both File and Storage Daemons. Job status T means successfully terminated.
A successful backup does not yet prove recoverability. It confirms the Director-to-client, client-to-storage and catalog path. The next part performs an isolated restore with content and metadata comparison.
sudo -u bareos bconsolerun job=backup-client01 level=Full yeswaitmessageslist jobs client=client01-fd lastquit
Troubleshoot failures methodically
Authentication failed usually points to mismatching resource names or secrets. Connection refused suggests an inactive daemon, incorrect bind address or firewall rule. A successful Director connection with a failed job can indicate the separate path to the Storage Daemon.
- Compare Director and File Daemon resource names and secrets exactly.
- Confirm that the File Daemon listens on the intended private address and port 9102.
- Test routing from Director to client and from client to storage separately.
- Run bareos-fd -t and bareos-dir -t before interpreting logs.
- Correlate Director, File Daemon and Storage messages by job ID.
- Do not work around TLS problems by disabling encryption; correct trust and naming.
Technical acceptance of client onboarding
This acceptance covers installation, authentication and a real full backup. Restore remains open until its own executed test has passed.
- File Daemon and Director use unique matching resource names.
- The client secret is absent from the article and repository and matches on both sides.
- The File Daemon binds to 192.168.77.11:9102.
- bareos-fd -t and bareos-dir -t pass without errors or deprecated warnings.
- status client confirms Immediate TLS and TLS 1.3.
- estimate confirms five entries and 135 bytes in the test FileSet.
- Full job 2 finishes with Success/T, zero errors and volume Full-0001.
- Real desktop and mobile WebUI views passed Playwright without console errors.
- Still open and not claimed: restore, production schedule, retention, offsite and disaster recovery.







