]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/INSTALL
baculum: Tweak INSTALL and README files
[bacula/bacula] / gui / baculum / INSTALL
1 1. Baculum overview
2 2. Baculum operating system environment
3   2.1 General requirements
4   2.2 Linux Fedora
5   2.3 Linux Debian
6 3. Preparing Baculum files
7 4. Preparing Apache Web Server
8 5. Example configuration VirtualHost
9
10 =========================================
11
12 1. Baculum overview
13
14 Baculum is Bacula web based interface. It enables Bacula administration
15 functions such as:
16
17 - Running Bacula jobs (backup, restore, verify...)
18 - Monitoring Bacula services by getting status these services
19 - Bacula console available via web interface
20 - Support for customized and restricted consoles (Console ACL functionality)
21 - Multiple Directors support
22 - Volumes managenment including labeling new volumes
23 - User friendly graphs
24 - Basic storage daemon operations on volumes (mount, umount, release actions)
25 - Easy in use configuration and restore wizards
26 - other features...
27
28
29 2. Baculum operating system environment
30
31
32 2.1 General requirements
33
34
35 Environment for Baculum installation should have following components:
36
37 - Web Server - with mod_rewrite module loaded. Baculum has been
38 tested on Apache HTTP Server and Lighttpd.
39
40 - PHP 5.3 or higher - as web server module. PHP CLI interpreter is not needed.
41 PHP should have installed next modules:
42     * PDO PHP support - depending on your catalog database: PDO PostgreSQL,
43 PDO MySQL or PDO SQLite.
44       Note, in case using MySQL database required is to use MySQL native driver.
45       It is php-mysqlnd for PHP, not php-mysql.
46     * BCMath PHP module.
47     * cURL PHP module.
48     * MB String PHP module.
49     * JSON PHP module.
50 - Bconsole - configured Bacula text based console
51 - Access to Bacula catalog database - computer with Baculum installation should be
52 able to connect to Bacula catalog database. There is not need to install Baculum
53 on server with Bacula Catalog DB because Baculum can communicate with Bacula database
54 located on remote server.
55
56 Above requirements are validated during Baculum start. So if in installation
57 environment there lacks some from these components then you be informed
58 about it.
59
60
61 2.2 Linux Fedora
62
63
64 Packages required for run Baculum in Fedora environemnt can be installed by command:
65
66 # yum install httpd \
67 php \
68 php-common \
69 php-pdo \
70 php-pgsql \
71 php-mysqlnd \
72 php-mbstring \
73 php-bcmath
74
75 In Fedora 20 PHP module for cURL support and for JSON support are compiled in PHP.
76
77 In case of using SELinux functionality in Baculum environment, recommended way
78 is switching "httpd_t" SELinux security doman to permissive domain like below:
79
80 # semanage permissive -a httpd_t
81
82 Please be sure that in PHP configuration file (usually located in /etc/php.ini)
83 there is option error_reporting set as below:
84
85 error_reporting = E_ALL & ~E_STRICT
86 memory_limit = 256M
87
88 Suggested method for Baculum webGUI access to Bacula Console (bconsole) is using
89 "sudo" functionality for that. In this case there is need to add to /etc/sudoers file two
90 lines according next template:
91
92 Defaults:apache_user    !requiretty
93 apache_user ALL= NOPASSWD:      bconsole_path
94
95 For example for user called "apache" from that HTTP service working with Baculum
96 there is need to add line like below:
97
98 Defaults:apache !requiretty
99 apache  ALL= NOPASSWD:  /usr/sbin/bconsole
100
101
102 2.3 Linux Debian
103
104
105 Packages required for run Baculum in Debian environemnt can be installed by command:
106
107 apt-get install apache2 \
108 libapache2-mod-php5 \
109 php5 \
110 php5-pgsql \
111 php5-mysql \
112 php5-curl \
113 php5-json
114
115 In Debian 7.4.0, PHP modules for BCMath and MultiByte String support are compiled in PHP.
116
117 There is need to create symbolic link as below, for enable mod_rewrite module in Apache.
118
119 # ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
120
121 Please be sure that in PHP configuration file (usually located in /etc/php5/apache2/php.ini)
122 there is option error_reporting set as below:
123
124 error_reporting = E_ALL & ~E_STRICT
125 memory_limit = 256M
126
127 Suggested method for Baculum webGUI access to Bacula Console (bconsole) is using
128 "sudo" functionality for that. In this case there is need to add to /etc/sudoers below
129 line according next template:
130
131 apache_user ALL= NOPASSWD:      bconsole_path
132
133 For example for user called "www-data" from that HTTP service working with Baculum
134 there is need to add line like below:
135
136 www-data        ALL= NOPASSWD:  /usr/sbin/bconsole
137
138
139 3. Preparing Baculum files
140
141
142 After downloading and unpacking Baculum sources archive there is need to set write
143 permissions for web server for three below directories:
144
145 /[files base location]/assets
146 /[files base location]/protected/Data
147 /[files base location]/protected/runtime
148
149 These directories permissions are validated during Baculum start. If web server
150 will not be able to write data in some from above directries then you be
151 informed about this fact.
152
153
154 4. Preparing Apache Web Server
155
156
157 First there is need to configure authentication to Baculum from web server side.
158 Baculum supports HTTP Basic authentication from web server with passwords stored
159 in file:
160
161 ./protected/Data/baculum.users
162
163 NOTE!
164 There is possible to use another location than:
165  ./protected/Data/baculum.users
166 however then is required provide the same auth data in Baculum initial wizard.
167
168 In Apache web server this authentication method may be realizing by next directives
169 declaration in Apache configuration file:
170
171 AuthType Basic
172 AuthUserFile /var/www/baculum/protected/Data/baculum.users
173 Require valid-user
174
175 For creating passwords file you may use htpasswd binary file in next way:
176
177 # htpasswd -c /var/www/baculum/protected/Data/baculum.users someuser
178
179 You will be asked about inputing password and retype password for user.
180
181 NOTE!
182 "-c" switcher you should use only for new created passwords file. For existing
183 passwords file "-c" switcher should not be provided.
184
185 At the end there is need to give web server user possibility to manage the auth file:
186 For example:
187
188 chown www-data:www-data /var/www/baculum/protected/Data/baculum.users
189
190 5. Example configuration VirtualHost
191
192
193 <VirtualHost *:80>
194         DocumentRoot /var/www/baculum
195         ServerName somehost.example.com
196         <Directory /var/www/baculum>
197                 AllowOverride All
198                 AuthType Basic
199                 AuthName MyPrivateFile
200                 AuthUserFile /var/www/baculum/protected/Data/baculum.users
201                 Require valid-user
202         </Directory>
203 </VirtualHost>
204
205
206 Above configuration should be writen in a new Apache configuration file.
207 for example, location for that can be put to /etc/apache2/sites-enabled/baculum.conf.
208
209 In this way, configuration file baculum.conf will be loaded automaticly during
210 Apache server start.