• v1.0.0 ee1bed6048

    v1.0.0
    All checks were successful
    Build and Publish Package / build-and-publish (push) Successful in 5s
    Stable

    faaleoleo-dev-team released this 2026-03-12 19:52:36 +00:00 | 24 commits to master since this release

    Signed by faaleoleo-dev-team
    GPG key ID: 088E9A2BE6C99853

    Bacula 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.25 spins 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 include init, reset, clients, jobs-failed, jobtotals, export-csv, and smoke-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/Storage
    Commands /cmd/run, /cmd/restore, /cmd/cancel, /cmd/estimate, /cmd/label, /cmd/purge, /cmd/prune
    Status /status/director, /status/client/
    Resources /res/director, /res/filedaemon, /res/storagedaemon
    Auth /oauth/token
    Mock control /mock/health, /mock/initialize, /mock/reset

    System 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-test
    

    Verifying 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.sha256
    

    See the README for full verification instructions and download URLs.

    Documentation

    • Implementation GuideBacula-Mock-Server-Manual.md
    • End User GuideBacula_Mock_EndUser_Guide.md
    • Usage ExamplesUSAGE.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