|  | Gerrit Code Review - Installation Guide | 
|  | ======================================= | 
|  |  | 
|  | You need a SQL database to house the review metadata.  Currently H2, | 
|  | MySQL and PostgreSQL are the only supported databases. | 
|  |  | 
|  | [[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 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. | 
|  |  | 
|  | [[createdb_postgres]] | 
|  | 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 | 
|  | ---- | 
|  |  | 
|  | [[createdb_mysql]] | 
|  | 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; | 
|  | ---- | 
|  |  | 
|  |  | 
|  | [[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. | 
|  |  | 
|  | 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]] | 
|  | 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] |