You need a SQL database to house the review metadata. Currently H2, MySQL and PostgreSQL are the only supported databases.

Download Gerrit

Current and past binary releases of Gerrit can be obtained from the downloads page at the project site:

Download any current *.war package. The war will be referred to as gerrit.war from this point forward, so you may find it easier to rename the downloaded file.

If you would prefer to build Gerrit directly from source, review the notes under developer setup.

Database Setup

H2

During init Gerrit will automatically configure the embedded H2 database. No additional configuration is necessary. Using the embedded H2 database is the easiest way to get a Gerrit site up and running.

PostgreSQL

Create a user for the web application within Postgres, assign it a password, create a database to store the metadata, and grant the user full rights on the newly created database:

  createuser -A -D -P -E gerrit2
  createdb -E UTF-8 -O gerrit2 reviewdb

MySQL

Create a user for the web application within the database, assign it a password, create a database, and give the newly created user full rights on it:

  mysql

  CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'secret';
  CREATE DATABASE reviewdb;
  ALTER DATABASE reviewdb charset=latin1;
  GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
  FLUSH PRIVILEGES;

Initialize the Site

Gerrit stores configuration files, the server’s SSH keys, and the managed Git repositories under a local directory, typically referred to as '$site_path'. If the embedded H2 database is being used, its data files will also be stored under this directory.

Initialize a new site directory by running the init command, passing the path of the site directory to be created as an argument to the -d option. Its recommended that Gerrit Code Review be given its own user account on the host system:

  sudo adduser gerrit2
  sudo su gerrit2
  cd ~gerrit2

  java -jar gerrit.war init -d review_site

If run from an interactive terminal, init will prompt through a series of configuration questions, including gathering information about the database created above. If the terminal is not interactive init will make some reasonable default selections, and will use the embedded H2 database.

Init may need to download additional JARs to support optional selected functionality. If a download fails a URL will be displayed and init will wait for the user to manually download the JAR and store it in the target location.

When init is complete, the daemon will be automatically started in the background and your web browser will open to the site:

  Initialized /home/gerrit2/review_site
  Executing /home/gerrit2/review_site/bin/gerrit.sh start
  Starting Gerrit Code Review: OK
  Waiting for server to start ... OK
  Opening browser ...

When the browser opens, sign in to Gerrit through the web interface. The first user to sign-in and register an account will be automatically placed into the fully privileged Administrators group, permitting server management over the web and over SSH. Subsequent users will be automatically registered as unprivileged users.

Project Setup

See Project Setup for further details on how to register a new project with Gerrit. This step is necessary if existing Git repositories were not imported during init.

Start/Stop Daemon

To control the Gerrit Code Review daemon that is running in the background, use the rc.d style start script created by init:

review_site/bin/gerrit.sh start
review_site/bin/gerrit.sh stop
review_site/bin/gerrit.sh restart

(Optional) Link the gerrit.sh script into rc3.d so the daemon automatically starts and stops with the operating system:

sudo ln -snf `pwd`/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
sudo ln -snf ../init.d/gerrit.sh /etc/rc3.d/S90gerrit

To install Gerrit into an existing servlet container instead of using the embedded Jetty server, see J2EE installation.

Site Customization

Gerrit Code Review supports some site-specific customization options. For more information, see the related topic in this manual:

Anonymous Access

Exporting the Git repository directory (gerrit.basePath) over the anonymous, unencrypted git:// protocol is more efficient than Gerrit’s internal SSH daemon. See the git-daemon documentation for details on how to configure this if anonymous access is desired.


Part of Gerrit Code Review