+-----------------------------------------------------------------------
| Running bacula-server on OpenBSD
+-----------------------------------------------------------------------

Note: If upgrading from a version older than 7.2.0, a database upgrade
is necessary (see the /usr/local/libexec/bacula/update_* scripts).
Also, the Director and Storage Daemons must be upgraded at the same
time, but older File Daemons can be used with 7.2.x.

The official Bacula documentation can be found at:
    http://blog.bacula.org/documentation/documentation/

Setting up the database for the Bacula Director
===============================================

In this documentation, it is assumed the PostgreSQL administrator user
is 'postgres' and the MariaDB one is 'root'; adapt accordingly to your
setup.
Replace 'dbpassword' with the bacula DB user password (configured in
/etc/bacula/bacula-dir.conf).

While SQLite3 may be of interest for quickly testing a setup, it is
not advised to use it in production but rather go for a full RDBMS
like PostgreSQL or MariaDB.

PostgreSQL
----------
Assuming you have an administrative account named `postgres',
you can create the 'bacula' user like this:

    $ createuser -U postgres --pwprompt --no-superuser \
      --createdb --no-createrole bacula

Creating the database and tables:
    $ cd /usr/local/libexec/bacula
    $ ./create_postgresql_database -U bacula
    $ ./make_postgresql_tables postgresql -U bacula
    $ ./grant_postgresql_privileges -U bacula

Upgrading the schema following a Bacula version upgrade:
    $ cd /usr/local/libexec/bacula
    $ ./update_postgresql_tables -U bacula

MariaDB
-------
Creating the DB, table and bacula user.
    $ cd /usr/local/libexec/bacula
    $ ./create_mysql_database -u root -p
    $ ./make_mysql_tables -u root -p
    $ ./grant_mysql_privileges -u root -p

Setting up the bacula DB user password.
    $ mysql -u root -p bacula
    MariaDB [bacula]> SET PASSWORD FOR 'bacula'@'localhost' = PASSWORD('dbpassword');
    MariaDB [bacula]> QUIT

Upgrading the schema following a Bacula version upgrade:
    $ cd /usr/local/libexec/bacula
    $ ./update_mysql_tables -U bacula

SQLite3
-------
Creating the DB and tables (default to /var/bacula/bacula.db).
    # cd /usr/local/libexec/bacula
    # su -m _bacula -c ./make_sqlite3_tables

Upgrading the schema following a Bacula version upgrade:
    # cd /usr/local/libexec/bacula
    # su -m _bacula -c ./update_sqlite3_tables

Device permissions
==================

The storage daemon needs access to its storage device(s):

* when backup is stored on disk, the mount points must be accessible in
rw mode by the "_bacula-sd" user (and/or the "_bacula" group).

* when backup is stored on tape, the corresponding device node(s) must
be accessible in rw mode by the "_bacula-sd" user (and/or the "_bacula"
group); alternatively the "_bacula-sd" user can be added to the
"operator" group instead.
e.g. for an autochanger, add the following lines in rc.conf.local(8)
chgrp _bacula /dev/ch0
chgrp _bacula /dev/nrst0
