• v1.2.1 9929928c8d

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

    faaleoleo-dev-team released this 2026-03-24 22:42:21 +00:00 | 16 commits to master since this release

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

    Overview

    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 read config.yaml as the single source of truth. The result is that server.tls.enabled: true now works end-to-end across the server, CLI, client simulator, SQLite sync tool, and both startup scripts without any additional configuration. One unrelated fix ensures install.sh always 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: true in config.yaml now propagates automatically to every component. The CLI (bacula-mock), client_simulator.py, and sync_mock_to_sqlite.py each auto-detect TLS from config.yaml when the BACULA_MOCK_TLS environment variable is not set. The startup scripts (start_server.sh, start_all.sh) also derive the protocol from config.yaml rather than hard-coding http://.

    HTTPS health check in start_all.sh — The readiness loop that waits for the server to become available previously hard-coded http://. It now reads config.yaml so the health check works correctly when the server starts with TLS enabled.

    SSL context for self-signed certificatessync_mock_to_sqlite.py now constructs an SSL context with certificate verification disabled when connecting to a TLS-enabled mock server. Previously, Python's default SSL verification caused api_fetch() calls to fail immediately against the self-signed certificate generated by the installer.

    TLS close_notify fix — Python's http.server does not send the TLS close_notify alert on connection close, which caused OpenSSL-based clients (including curl) to report "unexpected EOF" errors. A handle() override now calls connection.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/Storage
    Commands /cmd/run, /cmd/restore, /cmd/cancel, /cmd/estimate, /cmd/label, /cmd/purge, /cmd/prune
    Status /status/director (GET + POST), /status/client/, ?jobs=scheduled
    Resources /res/director, /res/filedaemon, /res/storagedaemon
    Auth /oauth/token
    Mock control /mock/health, /mock/initialize, /mock/reset
    bconsole bconsole-mock wrapper (.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-test
    

    BWeb Next Jobs (optional):

    sudo ./install-bweb-scheduled.sh
    

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

    See the README for full verification instructions and download URLs.

    Documentation

    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-mock implements 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