Manually Installing on Linux¶
Tip
We recommend installing Review Board using the Review Board Installer.
This will handle installation for a wide range of Linux distributions, and is the easiest way to install Review Board.
The instructions below are for historical purposes, and for administrators and Linux distro packagers looking for more information on the install process.
Review Board is most commonly used on Linux, and supports the latest versions of most major Linux distributions.
In this guide, we’ll show you how to install Review Board yourself on Linux. This will require a compatible version of Python, and several system packages.
If you’re looking for a different solution, you may consider:
If you need any assistance, reach out to us for support.
Compatibility¶
Python¶
Review Board 7.0 supports Python 3.8 or higher.
If your Linux distribution does not come with a supported version of Python, you may need to upgrade or look into a solution like Docker.
Alternatively, you can compile your own Python, along with mod_wsgi or another server. This is only recommended if you’re comfortable with this process.
Linux Distributions¶
Review Board 7.0 is known to work with the following Linux distributions:
Amazon Linux
Arch Linux
CentOS
Debian
Fedora
openSUSE
Red Hat Enterprise Linux
Rocky Linux
Ubuntu
For a full list of versions, see Linux System Compatibility.
Review Board works on both X86 and ARM Linux distributions.
Databases¶
Review Board supports the following database servers for production:
MySQL (v8 or higher recommended)
PostgreSQL (v10 or higher recommended)
Web Servers¶
Review Board is known to work with the following web servers:
Sample configurations are generated automatically for these servers.
Preparing For Installation¶
Administrator Access¶
This guide covers the following administrative actions:
Installing system packages.
This will use yum for Red Hat-based distributions, and apt-get for Debian-based distributions.
Creating system directories.
For example,
/opt/reviewboard
for a Python Virtual Environment and/var/www/reviews.example.com
for a Review Board site directory.
This will typically require you to be a superuser (root
).
We recommend switching to root
before you begin the steps below:
$ sudo -s
Python Virtual Environments vs. System Installs¶
A Python Virtual Environment is a self-contained copy of Python and a set of packages. This is supported by Review Board, and comes with some advantages:
Isolation from system packages.
System upgrades won’t break your Virtual Environment’s packages, and Virtual Environment upgrades won’t break your system.
Easier system migration and backups.
You can easily snapshot your entire environment and move or copy it between servers.
They’re easy to set up and use.
These are not Virtual Machines or Docker images. They’re just directories created on your system using a tool provided by your Linux distribution.
We recommend Virtual Environments for Review Board 5.0.5 and higher.
If you’re working with an earlier install of Review Board, you have a System Install.
Instructions are provided on each step for both Virtual Environments and System Installs.
Important
If you’re using Ubuntu 23.04+, Fedora 38+, or another Linux distribution released after 2022, it may require you to use Virtual Environments.
This is due to a Python standard called PEP 668, which disables system installs of software like Review Board. If you see an error about “externally managed environments” when using pip, this is the cause.
If you’re upgrading your Linux system to these releases, you will need to:
Follow this guide to create a new Virtual Environment for Review Board.
Either upgrade to Review Board 5.0.5+ or perform some manual changes to your web server to activate your Virtual Environment.
Contact support for assistance in migrating your legacy install into a Virtual Environment.
Using a HTTP(S) Proxy¶
If you’re behind a proxy server, you’ll need to set the http_proxy
environment variable to your proxy server before running pip. This
must be done as the user running pip, in the same shell.
To enable a proxy:
$ export http_proxy=http://proxy.example.com/
$ export https_proxy=https://proxy.example.com/
Let’s Begin¶
1. Install System Packages¶
You will need to install a handful of packages before installing Review Board:
$ apt-get install build-essential libffi-dev libjpeg-dev libssl-dev \
libxml2-dev libxmlsec1-dev libxmlsec1-openssl patch \
python3-dev python3-pip python3-virtualenv
$ yum install gcc libffi-devel libtool-ltdl-devel libxml2-devel \
openssl-devel patch perl python3-devel \
python3-virtualenv xmlsec1-devel xmlsec1-openssl-devel
2. Create a Virtual Environment¶
If you’re installing using a Python Virtual Environment instead of a System Install, you’ll need to create your environment:
$ virtualenv /opt/reviewboard
Tip
This will use the default version of Python on your system.
If you want to use a specific version of Python that you have installed,
you can pass -p
.
For example:
$ virtualenv -p python3.11 /opt/reviewboard
This version must be supported by your web server!
Important
Use virtualenv, not python -m venv.
If you’re familiar with Python already, you may be used to using python -m venv, but this isn’t suitable for Review Board. There are small differences in the virtual environment that will cause problems with activating the environment within the web server.
3. Install Review Board¶
To install Review Board and its required dependencies in one go:
$ /opt/reviewboard/bin/pip install ReviewBoard
$ pip3 install ReviewBoard
This will automatically download and install the latest stable release of Review Board and the required versions of its core dependencies.
If you need to install a specific version:
$ /opt/reviewboard/bin/pip install ReviewBoard==<version>
# For example:
$ /opt/reviewboard/bin/pip install ReviewBoard==5.0.6
$ pip3 install ReviewBoard==<version>
# For example:
$ pip3 install ReviewBoard==5.0.3
4. Install Power Pack for Review Board (optional)¶
Power Pack is an optional licensed extension to Review Board. It adds several additional features to Review Board that are useful to businesses and enterprises, including:
Report generation/analytics
Document review
Scalability enhancements
Database import/export and conversion
Support for additional source code management solutions:
60-day Power Pack trial licenses are available, and automatically convert to a perpetual 2-user license after your trial period expires.
To install Power Pack:
$ /opt/reviewboard/bin/pip install -U ReviewBoardPowerPack
$ pip3 install -U ReviewBoardPowerPack
5. Install Database Support¶
Review Board can be used with MySQL, MariaDB, or Postgres databases. To use these, you will need to install the appropriate packages.
MySQL / MariaDB¶
Install system packages for MySQL/MariaDB:
$ apt-get install libmysqlclient-dev
$ yum install mariadb-connector-c-devel # Or: $ yum install mariadb-devel
Install the Python support in your environment.
Warning
You may have trouble installing some versions of mysqlclient, depending on your Linux distribution.
mysqlclient 2.2 supports MySQL 8.0.33+, but is incompatible with many Linux distributions (including Amazon Linux and Debian).
We recommend trying to install the latest version. If that doesn’t work, try installing 2.1.1. If you need help, reach out to us for support.
See the mysqlclient documentation and bug tracker for more information.
$ /opt/reviewboard/bin/pip install -U mysqlclient # To install 2.1.1: $ /opt/reviewboard/bin/pip install mysqlclient==2.1.1
$ pip3 install -U mysqlclient # To install 2.1.1: $ pip3 install mysqlclient==2.1.1
PostgreSQL¶
$ /opt/reviewboard/bin/pip install -U 'ReviewBoard[postgres]'
$ pip3 install -U 'ReviewBoard[postgres]'
6. Install Memcached¶
Memcached is a high-performance caching server used by Review Board.
Review Board requires a memcached server, either locally or accessible over a network.
$ apt-get install memcached
$ yum install memcached
Learn how to optimize memcached for Review Board.
Tip
For better performance and scalability, install memcached on a separate server.
You’ll be asked to specify the memcached server address when you set up your Review Board site directory.
7. Install Repository Support (optional)¶
These are all optional, and depend on what kind of source code repositories you need to work with.
CVS¶
$ apt-get install cvs
$ yum install cvs
Git¶
$ apt-get install git
$ yum install git
Mercurial¶
$ pip3 install -U mercurial
Perforce¶
To use Review Board with Perforce, you’ll need to install both command line tools and Python packages. These are both provided by Perforce.
Install the Helix Command-Line Client (p4).
This must be placed in the web server’s system path (for example,
/opt/reviewboard/bin
or/usr/bin
).This must be placed in the web server’s system path (for example,
/usr/bin
).Install Perforce’s Python bindings:
$ /opt/reviewboard/bin/pip install -U 'ReviewBoard[p4]'
$ pip3 install -U 'ReviewBoard[p4]'
Subversion¶
To use Review Board with Subversion, you’ll need both Subversion and PySVN installed.
Install system packages for Subversion:
# Enable apt sources in /etc/apt/sources.list. You can do this by # uncommenting the "deb-src" lines in that file or by running: $ sed -i '/deb-src/s/^# //' /etc/apt/sources.list $ apt-get update # Now install the necessary packages. $ apt-get install subversion libsvn-dev $ apt-get build-dep python3-svn
$ yum install subversion subversion-devel
Install PySVN:
$ /opt/reviewboard/bin/pip install wheel $ curl https://pysvn.reviewboard.org | /opt/reviewboard/bin/python
$ pip3 install wheel $ curl https://pysvn.reviewboard.org | python3
Learn more about our PySVN installer if you need help. Simply follow the instructions there.
Note
Review Board previously supported an alternative to PySVN called Subvertpy. We’ve decided to drop Subvertpy support after many reports of compatibility issues.
If you previously used Subvertpy, you will need to install PySVN instead.
8. Install Authentication Support (optional)¶
Review Board can be connected to many kinds of authentication services, including:
Active Directory
LDAP
SAML Single Sign-On services
NIS
X.509 Public Keys
Some of these require installing additional support, which will be covered here.
After you’ve installed Review Board and created your site, you will need to configure your authentication method. See the Authentication Settings documentation for more information.
Important
During setup, you will be asked to create an administrator user. This user will be set up as a “local user”, so that it can always log into Review Board.
Please choose a username that not already in your existing authentication service, to avoid any trouble logging in.
LDAP / Active Directory¶
Install the required system libraries:
$ apt-get install libldap-dev
$ yum install openldap-devel
Install the packages in Python:
$ /opt/reviewboard/bin/pip install -U 'ReviewBoard[ldap]'
$ pip3 install -U 'ReviewBoard[ldap]'
SAML Single Sign-On¶
$ /opt/reviewboard/bin/pip install -U 'ReviewBoard[saml]'
$ pip3 install -U 'ReviewBoard[saml]'
9. Install CDN Support (optional)¶
Review Board can optionally use various cloud services to store uploaded file attachments, keeping them out of local storage.
After you’ve installed Review Board and created your site, you will need to configure your cloud storage method. See the File Storage Settings documentation for more information.
Amazon S3¶
$ /opt/reviewboard/bin/pip install -U 'ReviewBoard[s3]'
$ pip3 install -U 'ReviewBoard[s3]'
OpenStack Swift¶
$ /opt/reviewboard/bin/pip install -U 'ReviewBoard[swift]'
$ pip3 install -U 'ReviewBoard[swift]'
Installation is Complete! Next…¶
Congratulations on installing Review Board!
The next step is to create a site directory. This directory will contain your configuration, data files, file attachments, static media files (CSS, JavaScript, and images), and more.
You can have multiple site directories on the same server, each serving a separate Review Board install.
Let’s create your first site directory. Continue on to Creating a Review Board Site.