| Gerrit Code Review - Installation Guide |
| ======================================= |
| |
| [[requirements]] |
| Requirements |
| ----------- |
| To run the Gerrit service, the following requirements must be met on |
| the host: |
| |
| * JDK, minimum version 1.6 http://www.oracle.com/technetwork/java/javase/downloads/index.html[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]] |
| Download Gerrit |
| --------------- |
| |
| Current and past binary releases of Gerrit can be obtained from |
| the downloads page at the project site: |
| |
| * http://code.google.com/p/gerrit/downloads/list[Gerrit Downloads] |
| |
| 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 link:dev-readme.html[developer setup]. |
| |
| |
| [[createdb]] |
| Database Setup |
| -------------- |
| |
| [[createdb_h2]] |
| H2 |
| ~~ |
| |
| During the init phase of Gerrit you will need to specify which database to use. |
| If you choose H2, Gerrit will automatically set up the embedded H2 database as |
| backend so no set up in advance is necessary. Also, no additional 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 link:install-quick.html[the quick guide]. |
| |
| [[createdb_postgres]] |
| 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 -A -D -P -E gerrit2 |
| createdb -E UTF-8 -O gerrit2 reviewdb |
| ---- |
| |
| |
| [[createdb_mysql]] |
| 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; |
| ---- |
| |
| |
| [[init]] |
| 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]] |
| Project Setup |
| ------------- |
| |
| See link:project-setup.html[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'. |
| |
| |
| [[rc_d]] |
| 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 |
| link:install-j2ee.html[J2EE installation]. |
| |
| |
| [[customize]] |
| Site Customization |
| ------------------ |
| |
| Gerrit Code Review supports some site-specific customization options. |
| For more information, see the related topic in this manual: |
| |
| * link:config-reverseproxy.html[Reverse Proxy] |
| * link:config-sso.html[Single Sign-On Systems] |
| * link:config-replication.html[Git Replication/Mirroring] |
| * link:config-headerfooter.html[Site Header/Footer] |
| * link:config-gitweb.html[Gitweb Integration] |
| * link:config-gerrit.html[Other System Settings] |
| |
| |
| [[anonymous_access]] |
| Anonymous Access |
| ---------------- |
| |
| Exporting the Git repository directory |
| (link:config-gerrit.html#gerrit.basePath[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. |
| |
| * http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html[man git-daemon] |
| |
| |
| External Documentation Links |
| ---------------------------- |
| |
| * http://www.postgresql.org/docs/[PostgreSQL Documentation] |
| * http://dev.mysql.com/doc/[MySQL Documentation] |
| * http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html[git-daemon] |
| |
| |
| GERRIT |
| ------ |
| Part of link:index.html[Gerrit Code Review] |