Baculum (bacula-gui) is the official web graphic interface of the Bacula project (bacula.org). Version 9 contains a configuration module that allows the backup administrator to change Bacula backup settings without editing text files. Baculum also brings a new API that eases the integration with other software, interface, and consoles.

1. Installation

Baculum 9 works with other versions of Bacula, but only Bacula 9 has the json binaries – necessary for Bacula’s graphical configuration.

To install Bacula 9 from the source code, go to <http://bacula.us/compilation>.

Once you have a working Bacula deploy it is time to install Baculum API and interface, as follows.

2. Debian/Ubuntu

wget -qO - https://www.bacula.org/downloads/baculum/baculum.pub | apt-key add -

echo "
deb [ arch=amd64 ] https://www.bacula.org/downloads/baculum/stable-11/debian bullseye main
deb-src https://www.bacula.org/downloads/baculum/stable-11/debian bullseye main
" > /etc/apt/sources.list.d/baculum.list

apt-get update && apt-get install php-bcmath php*-mbstring baculum-api baculum-api-apache2 baculum-common bacula-console baculum-web baculum-web-apache2 

echo "Defaults:apache "'!'"requiretty
www-data ALL=NOPASSWD: /usr/sbin/bconsole
www-data ALL=NOPASSWD: /usr/sbin/bdirjson
www-data ALL=NOPASSWD: /usr/sbin/bsdjson
www-data ALL=NOPASSWD: /usr/sbin/bfdjson
www-data ALL=NOPASSWD: /usr/sbin/bbconsjson
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-dir
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-dir
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-dir
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-sd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-sd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-sd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-fd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-fd
www-data ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-fd
www-data ALL=(root) NOPASSWD: /opt/bacula/bin/mtx-changer
" > /etc/sudoers.d/baculum

usermod -aG bacula www-data 
chown -R www-data:bacula /opt/bacula/working /opt/bacula/etc
chmod -R g+rwx /opt/bacula/working /opt/bacula/etc
a2enmod rewrite
a2ensite baculum-web baculum-api
service apache2 restart

sed -i 's/ident/trust/g; s/peer/trust/g; s/md5/trust/g' /var/lib/pgsql/data/pg_hba.conf 
sed -i 's/ident/trust/g; s/peer/trust/g; s/md5/trust/g' /etc/postgresql/*/main/pg_hba.conf
service postgresql restart

server_ip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}') 

echo "Use the Internet browser to access and configure Baculum API http://$server_ip:9096/ and then Baculum http://$server_ip:9095/"

3. Centos/RedHat

rpm --import https://bacula.org/downloads/baculum/baculum.pub

echo "
[baculumrepo]
name=Baculum CentOS repository
baseurl=https://www.bacula.org/downloads/baculum/stable-11/centos
gpgcheck=1
enabled=1" > /etc/yum.repos.d/baculum.repo

yum install -y baculum-common baculum-api baculum-api-httpd baculum-web baculum-web-httpd

echo "Defaults:apache "'!'"requiretty
apache  ALL=NOPASSWD:  /usr/sbin/bconsole
apache  ALL=NOPASSWD:  /usr/sbin/bdirjson
apache  ALL=NOPASSWD:  /usr/sbin/bsdjson
apache  ALL=NOPASSWD:  /usr/sbin/bfdjson
apache  ALL=NOPASSWD:  /usr/sbin/bbconsjson
apache ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-dir
apache ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-dir
apache ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-dir
apache ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-sd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-sd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-sd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl start bacula-fd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl stop bacula-fd
apache ALL=(root) NOPASSWD: /usr/bin/systemctl restart bacula-fd
apache ALL=(root) NOPASSWD: /opt/bacula/bin/mtx-changer
" > /etc/sudoers.d/baculum
usermod -aG bacula apache
chown -R apache:bacula /opt/bacula/working /opt/bacula/etc
chmod -R g+rwx /opt/bacula/working /opt/bacula/etc

firewall-cmd --permanent --zone=public --add-port=9095-9096/tcp
firewall-cmd --reload

service httpd restart
systemctl enable httpd
sed -i 's/ident/trust/g; s/peer/trust/g' /var/lib/pgsql/data/pg_hba.conf
service postgresql restart

server_ip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')

echo "Use the Internet browser to access and configure Baculum API http://$server_ip:9096/ and then Baculum http://$server_ip:9095/"

4. Configuration

First configure the API through the http://localhost:9096/ URL (admin, admin). You can test each of the settings you have made. An API access credential (user and password or oauth) will be defined, according to the following screens.

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 1

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 2

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 3

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 4

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 5

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 6

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 7

Then, access the Baculum interface (http://localhost:9095/ – admin, admin) and also configure the language, access to the Bacula database, the Baculum API and Baculum Interface credential, as follows:

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 8 Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 9 Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 10 Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 11

5. Themes

If you want to develop new CSS themes or change Baculum images, the location for the default theme is the following:

/usr/share/baculum/htdocs/themes/Baculum-v1

6. Screenshots

Configuration, dashboard and API screens.

Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 12 Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 13 Baculum 9, 11 and greater - Graphical Bacula Configuration, Administration and API 14

Disponível em: pt-brPortuguês (Portuguese (Brazil))enEnglishesEspañol (Spanish)