blob: 6e1a9bdf67c7a683d9a4d19c0a7121c4347ff17e [file] [log] [blame]
Marian Harbachebeb1542019-12-13 10:42:46 +01001:linkattrs:
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002= Gerrit Code Review - Standalone Daemon Installation Guide
Shawn O. Pearced2b73db2009-01-09 11:55:47 -08003
Janet Davies0c1a6212018-05-09 15:18:57 -07004[[prerequisites]]
5== Prerequisites
6
7To run the Gerrit service, the following requirement must be met on the host:
Fredrik Luthander833aa742011-10-27 21:07:46 +02008
David Pursehousea767f082020-01-10 14:20:23 +09009* JRE, versions 1.8 or 11 http://www.oracle.com/technetwork/java/javase/downloads/index.html[Download,role=external,window=_blank]
Gert van Dijka9d55112018-08-16 12:07:13 +020010+
David Ostrovsky841e3922020-01-09 01:05:05 +010011Gerrit is not yet compatible with Java 13 or newer at this time.
Fredrik Luthander833aa742011-10-27 21:07:46 +020012
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080013[[download]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080014== Download Gerrit
Shawn O. Pearced2b73db2009-01-09 11:55:47 -080015
Shawn O. Pearce31af1ff2009-01-26 12:04:41 -080016Current and past binary releases of Gerrit can be obtained from
Philip Browne3aa8b12019-06-21 21:24:41 +000017the link:https://gerrit-releases.storage.googleapis.com/index.html[
Marian Harbach34253372019-12-10 18:01:31 +010018Gerrit Releases site,role=external,window=_blank].
Shawn O. Pearce31af1ff2009-01-26 12:04:41 -080019
Shawn O. Pearce8ddb8cb2009-09-28 12:21:28 -070020Download any current `*.war` package. The war will be referred to as
21`gerrit.war` from this point forward, so you may find it easier to
Anthonyd3aed4c2009-09-26 13:48:10 -040022rename the downloaded file.
Shawn O. Pearceb8527ea2009-02-02 15:39:12 -080023
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080024If you would prefer to build Gerrit directly from source, review
25the notes under link:dev-readme.html[developer setup].
Shawn O. Pearce31af1ff2009-01-26 12:04:41 -080026
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080027[[init]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080028== Initialize the Site
Shawn O. Pearced2b73db2009-01-09 11:55:47 -080029
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080030Gerrit stores configuration files, the server's SSH keys, and the
31managed Git repositories under a local directory, typically referred
Dave Borowitzada289c2018-12-18 13:24:14 -080032to as `'$site_path'`.
Shawn O. Pearced2b73db2009-01-09 11:55:47 -080033
Fredrik Luthander833aa742011-10-27 21:07:46 +020034You also have to decide where to store your server side git repositories. This
35can either be a relative path under `'$site_path'` or an absolute path
36anywhere on your server system. You have to choose a place before commencing
37your init phase.
38
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080039Initialize a new site directory by running the init command, passing
40the path of the site directory to be created as an argument to the
41'-d' option. Its recommended that Gerrit Code Review be given its
42own user account on the host system:
43
44----
David Pursehouse64df83a2017-07-04 21:20:47 +090045 sudo adduser gerrit
46 sudo su gerrit
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080047
Fredrik Luthander833aa742011-10-27 21:07:46 +020048 java -jar gerrit.war init -d /path/to/your/gerrit_application_directory
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080049----
50
Michael Ochmann8129ece2016-07-08 11:25:25 +020051[NOTE]
52If you choose a location where your new user doesn't
Fredrik Luthander833aa742011-10-27 21:07:46 +020053have any privileges, you may have to manually create the directory first and
David Pursehouse64df83a2017-07-04 21:20:47 +090054then give ownership of that location to the `'gerrit'` user.
Fredrik Luthander833aa742011-10-27 21:07:46 +020055
56If run from an interactive terminal, the init command will prompt through a
Dave Borowitzada289c2018-12-18 13:24:14 -080057series of configuration questions. If the terminal is not interactive,
58running the init command will choose some reasonable default selections.
59Once the init phase is complete, you can review your settings in the file
60`'$site_path/etc/gerrit.config'`.
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080061
Fredrik Luthander833aa742011-10-27 21:07:46 +020062When running the init command, additional JARs might be downloaded to
63support optional selected functionality. If a download fails a URL will
64be displayed and init will wait for the user to manually download the JAR
65and store it in the target location.
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080066
Fredrik Luthander833aa742011-10-27 21:07:46 +020067When the init phase is complete, the daemon will be automatically started
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080068in the background and your web browser will open to the site:
69
70----
David Pursehouse64df83a2017-07-04 21:20:47 +090071 Initialized /home/gerrit/review_site
72 Executing /home/gerrit/review_site/bin/gerrit.sh start
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080073 Starting Gerrit Code Review: OK
74 Waiting for server to start ... OK
75 Opening browser ...
76----
77
78When the browser opens, sign in to Gerrit through the web interface.
79The first user to sign-in and register an account will be
80automatically placed into the fully privileged Administrators group,
81permitting server management over the web and over SSH. Subsequent
82users will be automatically registered as unprivileged users.
83
84
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080085== Installation Complete
Fredrik Luthander833aa742011-10-27 21:07:46 +020086
87Your base Gerrit server is now installed and running. You're now ready to
88either set up more projects or start working with the projects you've already
89imported.
90
91
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080092[[project_setup]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080093== Project Setup
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080094
Stefan Lay08ba4732014-05-05 16:36:12 +020095See link:project-configuration.html[Project Configuration] for further details on
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080096how to register a new project with Gerrit. This step is necessary
97if existing Git repositories were not imported during 'init'.
98
99
Karsten Dambekalnsa7f72a22011-03-25 14:21:59 +0100100[[rc_d]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800101== Start/Stop Daemon
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800102
103To control the Gerrit Code Review daemon that is running in the
104background, use the rc.d style start script created by 'init':
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800105
Michael Ochmannb99feab2016-07-06 14:10:22 +0200106----
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800107 review_site/bin/gerrit.sh start
108 review_site/bin/gerrit.sh stop
109 review_site/bin/gerrit.sh restart
Michael Ochmannb99feab2016-07-06 14:10:22 +0200110----
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800111
David Pursehouse626f8b52013-10-24 13:10:56 +0900112('Optional') Configure the daemon to automatically start and stop
113with the operating system.
114
115Uncomment the following 3 lines in the `'$site_path/bin/gerrit.sh'`
116script:
117
Michael Ochmannb99feab2016-07-06 14:10:22 +0200118----
David Pursehouse626f8b52013-10-24 13:10:56 +0900119 chkconfig: 3 99 99
120 description: Gerrit Code Review
121 processname: gerrit
Michael Ochmannb99feab2016-07-06 14:10:22 +0200122----
David Pursehouse626f8b52013-10-24 13:10:56 +0900123
124Then link the `gerrit.sh` script into `rc3.d`:
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800125
Michael Ochmannb99feab2016-07-06 14:10:22 +0200126----
Kyle Laker839edfc2013-03-08 01:05:10 -0500127 sudo ln -snf `pwd`/review_site/bin/gerrit.sh /etc/init.d/gerrit
128 sudo ln -snf /etc/init.d/gerrit /etc/rc3.d/S90gerrit
Michael Ochmannb99feab2016-07-06 14:10:22 +0200129----
Shawn O. Pearce86816ee2009-05-13 17:37:20 -0700130
David Pursehousebe284992013-09-26 14:43:33 +0900131('Optional') To enable autocompletion of the gerrit.sh commands, install
132autocompletion from the `/contrib/bash_completion` script. Refer to the
133script's header comments for installation instructions.
134
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800135To install Gerrit into an existing servlet container instead of using
136the embedded Jetty server, see
137link:install-j2ee.html[J2EE installation].
Shawn O. Pearce86816ee2009-05-13 17:37:20 -0700138
Rafal Klys6c454be2016-01-12 00:08:29 +0100139[[installation_on_windows]]
140== Installation on Windows
141
Gert van Dijk47b0ed32018-01-12 10:03:52 +0100142The `ssh-keygen` command must be available during the init phase to
143generate SSH host keys. If you have
Marian Harbach34253372019-12-10 18:01:31 +0100144link:https://git-for-windows.github.io/[Git for Windows,role=external,window=_blank] installed,
Rafal Klys6c454be2016-01-12 00:08:29 +0100145start Command Prompt and temporary add directory with ssh-keygen to the
146PATH environment variable just before running init command:
147
148====
149 PATH=%PATH%;c:\Program Files\Git\usr\bin
150====
151
152Please note that the path in the above example must not be
153double-quoted.
154
155To run the daemon after site initialization execute:
156
157====
158 cd C:\MY\GERRIT\SITE
159 java.exe -jar bin\gerrit.war daemon --console-log
160====
161
162To stop the daemon press Ctrl+C.
163
164=== Install the daemon as Windows Service
165
166To install Gerrit as Windows Service use the
167link:http://commons.apache.org/proper/commons-daemon/procrun.html[Apache
Marian Harbach34253372019-12-10 18:01:31 +0100168Commons Daemon Procrun,role=external,window=_blank].
Rafal Klys6c454be2016-01-12 00:08:29 +0100169
170Sample install command:
171
172====
173 prunsrv.exe //IS//Gerrit --DisplayName="Gerrit Code Review" --Startup=auto ^
174 --Jvm="C:\Program Files\Java\jre1.8.0_65\bin\server\jvm.dll" ^
175 --Classpath=C:\MY\GERRIT\SITE\bin\gerrit.war ^
176 --LogPath=C:\MY\GERRIT\SITE\logs ^
177 --StartPath=C:\MY\GERRIT\SITE ^
178 --StartMode=jvm --StopMode=jvm ^
179 --StartClass=com.google.gerrit.launcher.GerritLauncher --StartMethod=daemonStart ^
Edwin Kempin64a87762018-12-10 13:38:21 +0100180 --StopClass=com.google.gerrit.launcher.GerritLauncher --StopMethod=daemonStop
Rafal Klys6c454be2016-01-12 00:08:29 +0100181====
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800182
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800183[[customize]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800184== Site Customization
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800185
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800186Gerrit Code Review supports some site-specific customization options.
David Pursehouse221d4f62012-06-08 17:38:08 +0900187For more information, see the related topics in this manual:
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800188
Francois Marierd550b462011-04-13 14:30:20 +1200189* link:config-reverseproxy.html[Reverse Proxy]
Shawn O. Pearcef384b442009-01-10 16:20:56 -0800190* link:config-sso.html[Single Sign-On Systems]
Dave Borowitz1e49e142013-04-09 12:14:57 -0700191* link:config-themes.html[Themes]
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800192* link:config-gitweb.html[Gitweb Integration]
Shawn O. Pearce7b405712009-05-08 18:27:53 -0700193* link:config-gerrit.html[Other System Settings]
Sasa Zivkove5fc90e2013-05-10 15:12:13 +0200194* link:config-auto-site-initialization.html[Automatic Site Initialization on Startup]
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800195
Shawn O. Pearce0b91a632009-02-06 12:53:59 -0800196
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800197[[anonymous_access]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800198== Anonymous Access
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800199
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800200Exporting the Git repository directory
201(link:config-gerrit.html#gerrit.basePath[gerrit.basePath]) over the
202anonymous, unencrypted git:// protocol is more efficient than
203Gerrit's internal SSH daemon. See the `git-daemon` documentation
204for details on how to configure this if anonymous access is desired.
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800205
Marian Harbach34253372019-12-10 18:01:31 +0100206* http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html[man git-daemon,role=external,window=_blank]
Shawn O. Pearceb546c9b2009-02-24 13:12:39 -0800207
208
Martin Fick472bb9d2012-05-08 16:30:16 -0700209[[plugins]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800210== Plugins
Martin Fick472bb9d2012-05-08 16:30:16 -0700211
212Place Gerrit plugins in the review_site/plugins directory to have them loaded on Gerrit startup.
213
214
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800215== External Documentation Links
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800216
Marian Harbach34253372019-12-10 18:01:31 +0100217* http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html[git-daemon,role=external,window=_blank]
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800218
Shawn O. Pearce5500e692009-05-28 15:55:01 -0700219
Matthias Sohn0d213562019-11-29 02:01:56 +0100220[[backup]]
221== Backup
222
223See the link:backup.html[backup documentation].
224
Shawn O. Pearce5500e692009-05-28 15:55:01 -0700225GERRIT
226------
227Part of link:index.html[Gerrit Code Review]
Yuxuan 'fishy' Wang99cb68d2013-10-31 17:26:00 -0700228
229SEARCHBOX
230---------