The goal of this setup is to run the brep Apache2 modules from the development build while still being as close to the real deployment as possible. To this end, we use default, system-wide installations of both Apache2 and Postgres. In the below instructions replace with your login and www-data with the user under which Apache2 is running (See the "User" directive in the Apache2 .conf file). 0. Check Permissions Check that the files in the brep/ directory are readable by "others". If they are not, then run the following two commands to grant Apache2 read access: setfacl -Rdm g:www-data:rx brep setfacl --no-mask -Rm g:www-data:rx brep [Note that strictly speaking www-data in the above two commands is the Apache2 group, not user. However, most installations use the same name for both.] 1. Create PostgreSQL User and Database $ sudo su postgres $ psql CREATE DATABASE brep; CREATE USER ; GRANT ALL PRIVILEGES ON DATABASE brep TO ; CREATE USER "www-data" INHERIT IN ROLE ; Exit psql (^D) and postgres login (^D), then make sure the logins work: $ psql -d brep $ sudo sudo -u www-data psql -d brep To troubleshooting, see PostgreSQL logs, for example: $ sudo tail -f /var/log/postgresql/*.log 2. Create Database Schema and Load the Data All the commands are executed from brep project root. $ psql --quiet -d brep -f brep/package.sql $ loader/brep-loader tests/loader/r.conf # Or some other loader config. To verify: $ psql -d brep -c 'SELECT name, summary FROM repository' 3. Setup Apache2 Module Here we assume Apache2 is installed and you have an appropriate VirtualServer ready (the one for the default site is usually a good candidate). Open the corresponding Apache2 .conf file and add the following inside VirtualServer, replacing and with the actual absolute paths (if you built brep in the source tree, then the two would be the same). # brep module configuration. # LoadModule brep_module /brep/mod_brep.so SetHandler brep brep-conf /etc/brep.conf # brep static content (CSS files). # # Note: trailing slashes are important! # Alias /pkg/@/ /www/ /www"> Require all granted You may want to replace /etc/brep.conf with a custom configuration file if you often need to modify it. Restart Apache2 (use the second version for systemd): $ sudo /etc/init.d/apache2 restart $ sudo systemctl restart apache2 To verify, visit the repository root. To troubleshoote, see Apache logs, for example: $ sudo tail -f /var/log/apache2/error.log