Prerequisites

To run the Gerrit service, the following requirement must be met on the host:

  • JRE, versions 1.8 or 11 Download

    Gerrit is not yet compatible with Java 13 or newer at this time.

Download Gerrit

Current and past binary releases of Gerrit can be obtained from the Gerrit Releases 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.

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'.

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 gerrit
  sudo su gerrit

  java -jar gerrit.war init -d /path/to/your/gerrit_application_directory
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 'gerrit' user.

If run from an interactive terminal, the init command will prompt through a series of configuration questions. If the terminal is not interactive, running the init command will choose some reasonable default selections. 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/gerrit/review_site
  Executing /home/gerrit/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 Configuration 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') Configure the daemon to automatically start and stop with the operating system.

Uncomment the following 3 lines in the '$site_path/bin/gerrit.sh' script:

 chkconfig: 3 99 99
 description: Gerrit Code Review
 processname: gerrit

Then link the gerrit.sh script into rc3.d:

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

('Optional') To enable autocompletion of the gerrit.sh commands, install autocompletion from the /contrib/bash_completion script. Refer to the script’s header comments for installation instructions.

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

Installation on Windows

The ssh-keygen command must be available during the init phase to generate SSH host keys. If you have Git for Windows installed, start Command Prompt and temporary add directory with ssh-keygen to the PATH environment variable just before running init command:

PATH=%PATH%;c:\Program Files\Git\usr\bin

Please note that the path in the above example must not be double-quoted.

To run the daemon after site initialization execute:

cd C:\MY\GERRIT\SITE
java.exe -jar bin\gerrit.war daemon --console-log

To stop the daemon press Ctrl+C.

Install the daemon as Windows Service

To install Gerrit as Windows Service use the Apache Commons Daemon Procrun.

Sample install command:

prunsrv.exe //IS//Gerrit --DisplayName="Gerrit Code Review" --Startup=auto ^
      --Jvm="C:\Program Files\Java\jre1.8.0_65\bin\server\jvm.dll" ^
      --Classpath=C:\MY\GERRIT\SITE\bin\gerrit.war ^
      --LogPath=C:\MY\GERRIT\SITE\logs ^
      --StartPath=C:\MY\GERRIT\SITE ^
      --StartMode=jvm --StopMode=jvm ^
      --StartClass=com.google.gerrit.launcher.GerritLauncher --StartMethod=daemonStart ^
      --StopClass=com.google.gerrit.launcher.GerritLauncher --StopMethod=daemonStop

NOTE: Windows is not recommended as a server-side platform for running Gerrit Code Review, because of the lack of adoption from the Gerrit Community, incomplete functional validation and lack of security testing. Gerrit on Windows Server is not actively supported even though it may still be fully or partially functioning as expected.

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.

Backup