Forge Home


Setup Bacula-Web - a web based reporting and monitoring tool for Bacula


177 latest version

4.7 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 1.1.0 (latest)
released Aug 14th 2023
This version is compatible with:
  • Puppet Enterprise 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
  • Puppet >= 7.0.0 < 9.0.0
  • , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'markt-baculaweb', '1.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add markt-baculaweb
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install markt-baculaweb --version 1.1.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



markt/baculaweb — version 1.1.0 Aug 14th 2023

Continous Integration Puppet Forge Puppet Forge Downloads


Table of Contents


This module install and configures Bacula-Web, a web based reporting and monitoring tool for Bacula.


  • Bacula-Web 8.6.0 or later (due to breaking changes in this release)
  • A webservice like Apache or Nginx, puppetlabs/apache is recommended.
  • A supported version of PHP (PHP-FPM is strongly recommended), puppet/php is recommended.

Beginning with baculaweb

All parameters for the baculaweb module are contained within the main baculaweb class, so for any function of the module, set the options you want. All configuration parameters can be assigned hiera. The default values are also lookuped up by hiera. See the common usages below for examples.


Install and enable baculaweb

include baculaweb

Default User and Password for fresh installs

After installation the default user is admin and the default password is password. You should change this after installation.


The default application.db is only deployed once. Data is persisted between upgrades in baculaweb::data_dir.

Configure bacula catalog databases

To get baculaweb up and running configure at least one bacula catalog database with the paramter catalog_db.

See the following example for the different catalog database types:

class { 'baculaweb':
  catalog_db => [
      'label'    => 'EXAMPLE: MySQL backup catalog',
      'host'     => 'localhost',
      'login'    => 'bacula',
      'password' => 'verystrongpassword',
      'db_name'  => 'bacula',
      'db_type'  => 'mysql',
      'db_port'  => 3306,
      'label'    => 'EXAMPLE: PostgreSQL backup catalog',
      'host'     => 'localhost',
      'login'    => 'bacula',
      'password' => 'verystrongpassword',
      'db_name'  => 'bacula',
      'db_type'  => 'mysql',
      'db_port'  => 3306,
      'label'   => 'EXAMPLE: SQLite backup catalog',
      'db_name' => '/path/to/database',
      'db_type' => 'sqlite',

Using Hiera:

  - label: 'EXAMPLE: MySQL backup catalog'
    host: 'localhost'
    login: 'bacula'
    password: 'verystrongpassword'
    db_name: 'bacula'
    db_type: 'mysql'
    db_port: 3306
  - label: 'EXAMPLE: PostgreSQL backup catalog'
    host: 'localhost'
    login: 'bacula'
    password: 'verystrongpassword'
    db_name: 'bacula'
    db_type: 'pgsql'
    db_port: 5432
  - label: 'EXAMPLE: SQLite backup catalog'
    db_name: '/path/to/database'
    db_type: 'sqlite'

Configure custom installation options

Configure custom directories, ownerships and version:

class { 'baculaweb':
  version           => '8.6.3'
  root_dir          => '/var/www/html/bacula-web',
  extract_base_dir  => '/opt/bacula-web',
  user              => 'apache',
  group             => 'apache'

Using Hiera:

  version: '8.6.3'
  root_dir: '/var/www/html/bacula-web'
  extract_base_dir: '/opt/bacula-web'
  user: 'apache'
  group: 'apache'

Configure baculaweb

You find an overview of the baculaweb settings here:

See the following example to configure the settings:

class { 'baculaweb':
  language              => 'en_US',
  hide_empty_pools      => true,
  show_inactive_clients => true,
  datetime_format       => 'Y-m-d H:i:s',
  enable_users_auth     => false,
  debug                 => false,
  catalog_db            => [
      'label'    => 'MySQL backup catalog',
      'host'     => 'localhost',
      'login'    => 'bacula',
      'password' => 'verystrongpassword',
      'db_name'  => 'bacula',
      'db_type'  => 'mysql',
      'db_port'  => 3306,

Using Hiera:

  language: 'en_US'
  hide_empty_pools: true
  show_inactive_clients: true
  datetime_format: 'Y-m-d H:i:s'
  enable_users_auth: false
  debug: false
    - label: 'MySQL backup catalog'
      host: 'localhost'
      login: 'bacula'
      password: 'verystrongpassword'
      db_name: 'bacula'
      db_type: 'mysql'
      db_port: 3306




For a list of supported operating systems, see metadata.json


This module uses puppet_litmus for running acceptance tests.

Running acceptance tests

Create test environment:


Run the acceptance tests:


(Optional) Access the baculaweb application (user/pw: admin/password):

Remove the test environment:


Running unit tests


Release module to Puppet Forge


First prepare the release with:


This will set the version in metadata.json, create and

Commit and push

Then commit the changes and push them to the repository.

configure github actions secrets

Ensure that the following secrets are set in the github repository:

  • FORGE_API_KEY (your puppet forge api key)

Run github actions release workflow

Then run github actions pipeline "Publish module to puppet forge" from main branch to release the module to the forge:


Please use the GitHub issues functionality to report any bugs or requests for new features. Feel free to fork and submit pull requests for potential contributions.

All contributions must pass all existing tests, new features should provide additional unit/acceptance tests.