-
v1.2.1
StableAll checks were successfulBuild and Publish Package / build-and-publish (push) Successful in 5sreleased this
2026-03-24 22:42:21 +00:00 | 16 commits to master since this releaseOverview
v1.2.1 is a bug-fix release focused on TLS reliability. All components that previously hardcoded
http://or relied on an environment variable to detect TLS have been updated to readconfig.yamlas the single source of truth. The result is thatserver.tls.enabled: truenow works end-to-end across the server, CLI, client simulator, SQLite sync tool, and both startup scripts without any additional configuration. One unrelated fix ensuresinstall.shalways deploys bash completion, even when run from inside the install directory. No new features or breaking API changes.Highlights
End-to-end TLS support — Setting
server.tls.enabled: trueinconfig.yamlnow propagates automatically to every component. The CLI (bacula-mock),client_simulator.py, andsync_mock_to_sqlite.pyeach auto-detect TLS fromconfig.yamlwhen theBACULA_MOCK_TLSenvironment variable is not set. The startup scripts (start_server.sh,start_all.sh) also derive the protocol fromconfig.yamlrather than hard-codinghttp://.HTTPS health check in start_all.sh — The readiness loop that waits for the server to become available previously hard-coded
http://. It now readsconfig.yamlso the health check works correctly when the server starts with TLS enabled.SSL context for self-signed certificates —
sync_mock_to_sqlite.pynow constructs an SSL context with certificate verification disabled when connecting to a TLS-enabled mock server. Previously, Python's default SSL verification causedapi_fetch()calls to fail immediately against the self-signed certificate generated by the installer.TLS close_notify fix — Python's
http.serverdoes not send the TLSclose_notifyalert on connection close, which caused OpenSSL-based clients (includingcurl) to report "unexpected EOF" errors. Ahandle()override now callsconnection.unwrap()after each request to perform a clean TLS shutdown.install.sh bash completion — An early return in the installer skipped bash completion setup when the installer was executed from inside the install directory. The completion script is now always installed regardless of the working directory.
Supported API Surface
Category Endpoints Catalog /cat/Client,/cat/Job,/cat/JobTotals,/cat/JobLog,/cat/Pool,/cat/StorageCommands /cmd/run,/cmd/restore,/cmd/cancel,/cmd/estimate,/cmd/label,/cmd/purge,/cmd/pruneStatus /status/director(GET + POST),/status/client/,?jobs=scheduledResources /res/director,/res/filedaemon,/res/storagedaemonAuth /oauth/tokenMock control /mock/health,/mock/initialize,/mock/resetbconsole bconsole-mockwrapper (.api 2,.status dir scheduled,show schedule,show job)System Requirements
Component Minimum OS Latest Debian (other platforms untested) Python 3.8+ Disk ~100 MB Memory 512 MB (1 GB recommended for 500+ clients) Port 9101 (configurable) All Python dependencies are installed automatically in a virtual environment during setup.
Installation
sudo ./install.sh sudo systemctl start bacula-mock bacula-mock init 100 0.25 bacula-mock smoke-testBWeb Next Jobs (optional):
sudo ./install-bweb-scheduled.shVerifying the Package
Release packages are GPG-signed. Import the public key, then verify with:
gpg --verify BaculaMockServer-v1.2.1.tar.gz.asc BaculaMockServer-v1.2.1.tar.gz sha256sum -c BaculaMockServer-v1.2.1.tar.gz.sha256See the README for full verification instructions and download URLs.
Documentation
- Implementation Guide — Bacula-Mock-Server-Manual.md
- End User Guide — Bacula_Mock_EndUser_Guide.md
- BWeb Integration Guide — BWeb_Mock_Server_Integration_Guide.md
- Usage Examples — USAGE.md
Known Limitations
- This is a mock server — it does not perform actual backups or restores.
- Self-signed TLS certificates require clients to disable certificate verification or trust the generated CA.
- Very large client counts (1,000+) may require tuning memory allocation beyond the default 512 MB.
bconsole-mockimplements the subset of bconsole commands used by BWeb; full bconsole emulation is out of scope.
"Bacula" is a registered trademark of Bacula Systems SA. This software is not affiliated with or endorsed by Bacula Systems SA.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.2.0
StableAll checks were successfulBuild and Publish Package / build-and-publish (push) Successful in 5sreleased this
2026-03-24 22:29:19 +00:00 | 17 commits to master since this releaseOverview
v1.2.0 delivers full BWeb Management Suite compatibility, including the Next Jobs page that previously required a live Director. A new
bconsole-mockwrapper intercepts BWeb's bconsole calls and answers them via the mock REST API, with no Bacula infrastructure required. Alongside this, job history generation has been redesigned around a schedule-based model that produces strictly ascending JobId/StartTime pairs — matching real Director behaviour and fixing a class of BWeb display issues. Wire compatibility is hardened throughout. No breaking API changes.Highlights
bconsole-mock wrapper — A new stdlib-only script (
scripts/bconsole-mock) reads bconsole commands from stdin and returns wire-compatible text output by calling the mock REST API internally. This is the bridge that makes BWeb's Next Jobs page (action=next_job) work without a real Director. Handled commands includeshow schedule,show job,.api 2,.status dir scheduled, and the*prompt that BWeb'sBconsole.pmparser expects.Automated BWeb installer —
install-bweb-scheduled.shdeploysbconsole-mockto/opt/bacula/bin/bconsole-mock, writes credentials to/opt/bacula/etc/bconsole-mock.env, and patchesbweb.confin a single step. The existinginstall-bweb-mock.shworkflow is unchanged for sites that do not need the Next Jobs page.Schedule-based job history — Job timestamps are no longer scattered randomly across the catalog. Jobs are now created oldest-first at regular intervals going back
history_days, so JobId and StartTime are always strictly correlated. This matches real Bacula Director behaviour and is a prerequisite for BWeb's scheduled jobs table. Three newconfig.yamlparameters control the model:history_days(default: 7),job_interval_hours(default: 24), andjitter(default: 0.1).Wire compatibility hardening —
POST /status/directoris now routed.?jobs=scheduledis added as a dedicated endpoint. Scheduled jobs responses use the correctschedtimeanddatekey names..api 2JSON mode and.status dir scheduledkey=value output match BWeb parser expectations exactly. JobIds are assigned chronologically across all clients. The simulated fleet now carries realistic mixed client OS versions and a wire-compatibleunameformat.Bug fixes —
sync_mock_to_sqlite.pynow selects recent jobs byStartTimeinstead ofJobId, since a higher JobId no longer implies a newer job under schedule-based generation. A byte-range fix corrects HTTP response handling for range requests.Supported API Surface
Category Endpoints Catalog /cat/Client,/cat/Job,/cat/JobTotals,/cat/JobLog,/cat/Pool,/cat/StorageCommands /cmd/run,/cmd/restore,/cmd/cancel,/cmd/estimate,/cmd/label,/cmd/purge,/cmd/pruneStatus /status/director(GET + POST),/status/client/,?jobs=scheduledResources /res/director,/res/filedaemon,/res/storagedaemonAuth /oauth/tokenMock control /mock/health,/mock/initialize,/mock/resetbconsole bconsole-mockwrapper (.api 2,.status dir scheduled,show schedule,show job)System Requirements
Component Minimum OS Debian 13, Other Platforms untested Python 3.8+ Disk ~100 MB Memory 512 MB (1 GB recommended for 500+ clients) Port 9101 (configurable) All Python dependencies are installed automatically in a virtual environment during setup.
Installation
sudo ./install.sh sudo systemctl start bacula-mock bacula-mock init 100 0.25 bacula-mock smoke-testBWeb Next Jobs (optional):
sudo ./install-bweb-scheduled.shVerifying the Package
Release packages are GPG-signed. Import the public key, then verify with:
gpg --verify BaculaMockServer-v1.2.0.tar.gz.asc BaculaMockServer-v1.2.0.tar.gz sha256sum -c BaculaMockServer-v1.2.0.tar.gz.sha256See the README for full verification instructions and download URLs.
Documentation
- Implementation Guide — Bacula-Mock-Server-Manual.md
- End User Guide — Bacula_Mock_EndUser_Guide.md
- BWeb Integration Guide — BWeb_Mock_Server_Integration_Guide.md
- Usage Examples — USAGE.md
Known Limitations
- This is a mock server — it does not perform actual backups or restores.
- Self-signed TLS certificates require clients to disable certificate verification or trust the generated CA.
- Very large client counts (1,000+) may require tuning memory allocation beyond the default 512 MB.
bconsole-mockimplements the subset of bconsole commands used by BWeb; full bconsole emulation is out of scope.
"Bacula" is a registered trademark of Bacula Systems SA. This software is not affiliated with or endorsed by Bacula Systems SA.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.1.0
StableAll checks were successfulBuild and Publish Package / build-and-publish (push) Successful in 5sreleased this
2026-03-18 19:38:11 +00:00 | 21 commits to master since this releaseOverview
v1.1.0 is a stability and infrastructure release focused on making the CI/CD pipeline production-grade, hardening code quality, and fixing a handful of bugs that surfaced during early integrations. No breaking API changes.
Highlights
Production-grade CI/CD pipeline — The GitLab CI configuration was overhauled from top to bottom. Tests now run concurrently across stages, coverage reports are generated even on partial test failures, and server readiness checks use PID-based waits with proper curl timeouts instead of blind sleeps.
Coverage reporting — A
.coveragercfile is included to exclude standalone tools from measurement, giving an accurate picture of what the test suite actually covers. Coverage is published as a CI artifact on every pipeline run.Gitleaks integration — A
.gitleaks.tomlsuppression file prevents false positives on the demo credentials that ship with the mock, so the secret-scan stage passes cleanly without masking real leaks.Bug fixes — Job logs now sort chronologically instead of insertion order. The server startup sequence correctly sets
sys.pathand the working directory. The BWeb install script pointed at a stale repository name — that is corrected.Code quality — Imports across
src/are sorted to satisfyisort, theMD5call indata_generator.pyis flaggedusedforsecurity=Falseto pass FIPS-mode linters, and the secret-scan step no longer depends on a Python3 shim.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.0.0
StableAll checks were successfulBuild and Publish Package / build-and-publish (push) Successful in 5sreleased this
2026-03-12 19:52:36 +00:00 | 24 commits to master since this releaseBacula Mock Server v1.0.0 — Release Notes
Release date: March 2026
License: BSD 2-Clause — Copyright © 2026 faaleoleo
Overview
We're excited to announce the first public release of Bacula Mock Server — a full, wire-compatible simulation of the Bacula Enterprise REST API. Build dashboards, run CI pipelines, train administrators, and demo Bacula workflows without needing a production Director.
Highlights
Wire-compatible API simulation — Every endpoint mirrors the real Bacula Enterprise REST API in structure, authentication, and response format. Swap out the base URL and your code works the same.
30+ realistic client profiles — The mock ships with pre-built profiles spanning mail servers, databases, NFS shares, web servers, Windows hosts, VMware, Kubernetes, SAP HANA, IoT devices, and more. Each profile generates plausible job histories, logs, and statistics.
OAuth2 and HTTP Basic authentication — Both auth flows match the real Bacula Enterprise behavior, including token issuance and expiry, so auth-related code gets exercised the same way it would in production.
HTTPS with auto-generated TLS certificates — The server generates self-signed certificates at startup for TLS testing out of the box.
Configurable error rates — Tune failure rates from 0% to 100% to test error-handling paths, alerting thresholds, and disaster-recovery dashboards. A single command like
bacula-mock init 100 0.25spins up 100 clients with a 25% job failure rate.Full CLI tool (
bacula-mock) — Manage the server, query data, export reports, and run smoke tests from the terminal. Key commands includeinit,reset,clients,jobs-failed,jobtotals,export-csv, andsmoke-test.86 automated tests across 13 groups — An external Go test client covers all API surface area and is ready to plug into any CI/CD pipeline.
BVFS browsing endpoints — File-level restore browsing is fully simulated, enabling development and testing of restore UIs.
CSV and JSON export — Pull job data out in structured formats for reporting, analysis, or integration with external tools.
Systemd service — Ships with a unit file supporting auto-start, auto-restart on failure, and log rotation.
BWeb integration — Can be placed behind a lighttpd reverse proxy for use with the BWeb Management Suite.
Supported API Surface
Category Endpoints Catalog /cat/Client,/cat/Job,/cat/JobTotals,/cat/JobLog,/cat/Pool,/cat/StorageCommands /cmd/run,/cmd/restore,/cmd/cancel,/cmd/estimate,/cmd/label,/cmd/purge,/cmd/pruneStatus /status/director,/status/client/Resources /res/director,/res/filedaemon,/res/storagedaemonAuth /oauth/tokenMock control /mock/health,/mock/initialize,/mock/resetSystem Requirements
Component Minimum OS Debian 11+, Ubuntu 20.04+, RHEL 8+, Fedora 35+, macOS 11+ Python 3.8+ Disk ~100 MB Memory 512 MB (1 GB recommended for 500+ clients) Port 9101 (configurable) All Python dependencies are installed automatically in a virtual environment during setup.
Installation
sudo ./install.sh sudo systemctl start bacula-mock bacula-mock init 100 0.25 bacula-mock smoke-testVerifying the Package
Release packages are GPG-signed. Import the public key, then verify with:
gpg --verify BaculaMockServer-v1.0.0.tar.gz.asc BaculaMockServer-v1.0.0.tar.gz sha256sum -c BaculaMockServer-v1.0.0.tar.gz.sha256See the README for full verification instructions and download URLs.
Documentation
- Implementation Guide —
Bacula-Mock-Server-Manual.md - End User Guide —
Bacula_Mock_EndUser_Guide.md - Usage Examples —
USAGE.md
Known Limitations
- This is a mock server — it does not perform actual backups or restores.
- Self-signed TLS certificates require clients to disable certificate verification or trust the generated CA.
- Very large client counts (1,000+) may require tuning memory allocation beyond the default 512 MB.
"Bacula" is a registered trademark of Bacula Systems SA. This software is not affiliated with or endorsed by Bacula Systems SA.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
- Implementation Guide —