Requirements
To run the Gerrit service, the following requirements must be met on the host:
-
JDK, minimum version 1.6 Download
You’ll also need a SQL database to house the review metadata. You have the choice of either using the embedded H2 or to host your own MySQL or PostgreSQL.
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
During the init phase of Gerrit you will need to specify which database to use.
H2
If you choose H2, Gerrit will automatically set up the embedded H2 database as backend so no set up or configuration is necessary.
Using the embedded H2 database is the easiest way to get a Gerrit site up and running, making it ideal for proof of concepts or small team servers. On the flip side, H2 is not the recommended option for large corporate installations. This is because there is no easy way to interact with the database while Gerrit is offline, it’s not easy to backup the data, and it’s not possible to set up H2 in a load balanced/hotswap configuration.
If this option interests you, you might want to consider the quick guide.
PostgreSQL
This option is more complicated than the H2 option but is recommended for larger installations. It’s the database backend with the largest userbase in the Gerrit community.
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 --username=postgres -RDIElPS gerrit2 $ createdb --username=postgres -E UTF-8 -O gerrit2 reviewdb
Visit PostgreSQL’s documentation for further information regarding using PostgreSQL.
MySQL
This option is also more complicated than the H2 option. Just as with PostgreSQL it’s also recommended for larger installations.
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;
Visit MySQL’s documentation for further information regarding using MySQL.
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.
You also have to decide where to store your server side git repositories. This can either be a relative path under '$site_path' or an absolute path anywhere on your server system. You have to choose a place before commencing your init phase.
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 java -jar gerrit.war init -d /path/to/your/gerrit_application_directory
Please note: If you choose a location where your new user doesn’t have any privileges, you may have to manually create the directory first and then give ownership of that location to the 'gerrit2' user.
If run from an interactive terminal, the init command will prompt through a series of configuration questions, including gathering information about the database created above. If the terminal is not interactive, running the init command will choose some reasonable default selections, and will use the embedded H2 database. Once the init phase is complete, you can review your settings in the file '$site_path/etc/gerrit.config'.
When running the init command, additional JARs might be downloaded 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 the init phase 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.
Installation Complete
Your base Gerrit server is now installed and running. You’re now ready to either set up more projects or start working with the projects you’ve already imported.
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 sudo ln -snf /etc/init.d/gerrit /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 topics 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.
Plugins
Place Gerrit plugins in the review_site/plugins directory to have them loaded on Gerrit startup.
External Documentation Links
Part of Gerrit Code Review