blob: c6977a4d36678b6124ec02cdf035d1f194d28ada [file] [log] [blame]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001= Gerrit Code Review - Standalone Daemon Installation Guide
Shawn O. Pearced2b73db2009-01-09 11:55:47 -08002
Fredrik Luthander833aa742011-10-27 21:07:46 +02003[[requirements]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08004== Requirements
Fredrik Luthander833aa742011-10-27 21:07:46 +02005To run the Gerrit service, the following requirements must be met on
6the host:
7
David Pursehouse7b409442016-11-15 12:11:21 -08008* JRE, minimum version 1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.html[Download]
Fredrik Luthander833aa742011-10-27 21:07:46 +02009
David Pursehouse3be717b2013-05-13 13:56:11 +090010You'll also need an SQL database to house the review metadata. You have the
Fredrik Luthander833aa742011-10-27 21:07:46 +020011choice of either using the embedded H2 or to host your own MySQL or PostgreSQL.
12
Mark Derricuttde6c16d2014-03-25 13:45:05 +130013[[cryptography]]
14== Configure Java for Strong Cryptography
15Support for extra strength cryptographic ciphers: _AES128CTR_, _AES256CTR_,
16_ARCFOUR256_, and _ARCFOUR128_ can be enabled by downloading the _Java
17Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files_
18from Oracle and installing them into your JRE.
19
Michael Ochmann8129ece2016-07-08 11:25:25 +020020[NOTE]
21Installing JCE extensions is optional and export restrictions may apply.
Mark Derricuttde6c16d2014-03-25 13:45:05 +130022
23. Download the unlimited strength JCE policy files.
24+
25- link:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html[JDK7 JCE policy files]
26- link:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html[JDK8 JCE policy files]
27. Uncompress and extract the downloaded file.
28+
29The downloaded file contains the following files:
30+
31[cols="2"]
32|===
33|README.txt
34|Information about JCE and installation guide
35
36|local_policy.jar
37|Unlimited strength local policy file
38
39|US_export_policy.jar
40|Unlimited strength US export policy file
41|===
42. Install the unlimited strength policy JAR files by following instructions
43found in `README.txt`.
Shawn O. Pearced2b73db2009-01-09 11:55:47 -080044
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080045[[download]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080046== Download Gerrit
Shawn O. Pearced2b73db2009-01-09 11:55:47 -080047
Shawn O. Pearce31af1ff2009-01-26 12:04:41 -080048Current and past binary releases of Gerrit can be obtained from
Shawn Pearce6d7ebc62015-06-12 16:34:42 -070049the link:https://www.gerritcodereview.com/download/index.html[
David Pursehouse8d2b4a02013-10-18 11:01:28 +090050Gerrit Releases site].
Shawn O. Pearce31af1ff2009-01-26 12:04:41 -080051
Shawn O. Pearce8ddb8cb2009-09-28 12:21:28 -070052Download any current `*.war` package. The war will be referred to as
53`gerrit.war` from this point forward, so you may find it easier to
Anthonyd3aed4c2009-09-26 13:48:10 -040054rename the downloaded file.
Shawn O. Pearceb8527ea2009-02-02 15:39:12 -080055
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080056If you would prefer to build Gerrit directly from source, review
57the notes under link:dev-readme.html[developer setup].
Shawn O. Pearce31af1ff2009-01-26 12:04:41 -080058
Jason Huntley25bbd512012-08-02 11:10:31 -040059include::database-setup.txt[]
Shawn O. Pearce0b91a632009-02-06 12:53:59 -080060
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080061[[init]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080062== Initialize the Site
Shawn O. Pearced2b73db2009-01-09 11:55:47 -080063
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080064Gerrit stores configuration files, the server's SSH keys, and the
65managed Git repositories under a local directory, typically referred
66to as `'$site_path'`. If the embedded H2 database is being used,
67its data files will also be stored under this directory.
Shawn O. Pearced2b73db2009-01-09 11:55:47 -080068
Fredrik Luthander833aa742011-10-27 21:07:46 +020069You also have to decide where to store your server side git repositories. This
70can either be a relative path under `'$site_path'` or an absolute path
71anywhere on your server system. You have to choose a place before commencing
72your init phase.
73
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080074Initialize a new site directory by running the init command, passing
75the path of the site directory to be created as an argument to the
76'-d' option. Its recommended that Gerrit Code Review be given its
77own user account on the host system:
78
79----
David Pursehouse64df83a2017-07-04 21:20:47 +090080 sudo adduser gerrit
81 sudo su gerrit
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080082
Fredrik Luthander833aa742011-10-27 21:07:46 +020083 java -jar gerrit.war init -d /path/to/your/gerrit_application_directory
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080084----
85
Michael Ochmann8129ece2016-07-08 11:25:25 +020086[NOTE]
87If you choose a location where your new user doesn't
Fredrik Luthander833aa742011-10-27 21:07:46 +020088have any privileges, you may have to manually create the directory first and
David Pursehouse64df83a2017-07-04 21:20:47 +090089then give ownership of that location to the `'gerrit'` user.
Fredrik Luthander833aa742011-10-27 21:07:46 +020090
91If run from an interactive terminal, the init command will prompt through a
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080092series of configuration questions, including gathering information
Fredrik Luthander833aa742011-10-27 21:07:46 +020093about the database created above. If the terminal is not interactive,
94running the init command will choose some reasonable default selections,
95and will use the embedded H2 database. Once the init phase is complete,
96you can review your settings in the file `'$site_path/etc/gerrit.config'`.
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -080097
Fredrik Luthander833aa742011-10-27 21:07:46 +020098When running the init command, additional JARs might be downloaded to
99support optional selected functionality. If a download fails a URL will
100be displayed and init will wait for the user to manually download the JAR
101and store it in the target location.
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800102
Fredrik Luthander833aa742011-10-27 21:07:46 +0200103When the init phase is complete, the daemon will be automatically started
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800104in the background and your web browser will open to the site:
105
106----
David Pursehouse64df83a2017-07-04 21:20:47 +0900107 Initialized /home/gerrit/review_site
108 Executing /home/gerrit/review_site/bin/gerrit.sh start
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800109 Starting Gerrit Code Review: OK
110 Waiting for server to start ... OK
111 Opening browser ...
112----
113
114When the browser opens, sign in to Gerrit through the web interface.
115The first user to sign-in and register an account will be
116automatically placed into the fully privileged Administrators group,
117permitting server management over the web and over SSH. Subsequent
118users will be automatically registered as unprivileged users.
119
120
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800121== Installation Complete
Fredrik Luthander833aa742011-10-27 21:07:46 +0200122
123Your base Gerrit server is now installed and running. You're now ready to
124either set up more projects or start working with the projects you've already
125imported.
126
127
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800128[[project_setup]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800129== Project Setup
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800130
Stefan Lay08ba4732014-05-05 16:36:12 +0200131See link:project-configuration.html[Project Configuration] for further details on
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800132how to register a new project with Gerrit. This step is necessary
133if existing Git repositories were not imported during 'init'.
134
135
Karsten Dambekalnsa7f72a22011-03-25 14:21:59 +0100136[[rc_d]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800137== Start/Stop Daemon
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800138
139To control the Gerrit Code Review daemon that is running in the
140background, use the rc.d style start script created by 'init':
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800141
Michael Ochmannb99feab2016-07-06 14:10:22 +0200142----
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800143 review_site/bin/gerrit.sh start
144 review_site/bin/gerrit.sh stop
145 review_site/bin/gerrit.sh restart
Michael Ochmannb99feab2016-07-06 14:10:22 +0200146----
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800147
David Pursehouse626f8b52013-10-24 13:10:56 +0900148('Optional') Configure the daemon to automatically start and stop
149with the operating system.
150
151Uncomment the following 3 lines in the `'$site_path/bin/gerrit.sh'`
152script:
153
Michael Ochmannb99feab2016-07-06 14:10:22 +0200154----
David Pursehouse626f8b52013-10-24 13:10:56 +0900155 chkconfig: 3 99 99
156 description: Gerrit Code Review
157 processname: gerrit
Michael Ochmannb99feab2016-07-06 14:10:22 +0200158----
David Pursehouse626f8b52013-10-24 13:10:56 +0900159
160Then link the `gerrit.sh` script into `rc3.d`:
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800161
Michael Ochmannb99feab2016-07-06 14:10:22 +0200162----
Kyle Laker839edfc2013-03-08 01:05:10 -0500163 sudo ln -snf `pwd`/review_site/bin/gerrit.sh /etc/init.d/gerrit
164 sudo ln -snf /etc/init.d/gerrit /etc/rc3.d/S90gerrit
Michael Ochmannb99feab2016-07-06 14:10:22 +0200165----
Shawn O. Pearce86816ee2009-05-13 17:37:20 -0700166
David Pursehousebe284992013-09-26 14:43:33 +0900167('Optional') To enable autocompletion of the gerrit.sh commands, install
168autocompletion from the `/contrib/bash_completion` script. Refer to the
169script's header comments for installation instructions.
170
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800171To install Gerrit into an existing servlet container instead of using
172the embedded Jetty server, see
173link:install-j2ee.html[J2EE installation].
Shawn O. Pearce86816ee2009-05-13 17:37:20 -0700174
Rafal Klys6c454be2016-01-12 00:08:29 +0100175[[installation_on_windows]]
176== Installation on Windows
177
178If new site is going to be initialized with Bouncy Castle cryptography,
179ssh-keygen command must be available during the init phase. If you have
180link:https://git-for-windows.github.io/[Git for Windows] installed,
181start Command Prompt and temporary add directory with ssh-keygen to the
182PATH environment variable just before running init command:
183
184====
185 PATH=%PATH%;c:\Program Files\Git\usr\bin
186====
187
188Please note that the path in the above example must not be
189double-quoted.
190
191To run the daemon after site initialization execute:
192
193====
194 cd C:\MY\GERRIT\SITE
195 java.exe -jar bin\gerrit.war daemon --console-log
196====
197
198To stop the daemon press Ctrl+C.
199
200=== Install the daemon as Windows Service
201
202To install Gerrit as Windows Service use the
203link:http://commons.apache.org/proper/commons-daemon/procrun.html[Apache
204Commons Daemon Procrun].
205
206Sample install command:
207
208====
209 prunsrv.exe //IS//Gerrit --DisplayName="Gerrit Code Review" --Startup=auto ^
210 --Jvm="C:\Program Files\Java\jre1.8.0_65\bin\server\jvm.dll" ^
211 --Classpath=C:\MY\GERRIT\SITE\bin\gerrit.war ^
212 --LogPath=C:\MY\GERRIT\SITE\logs ^
213 --StartPath=C:\MY\GERRIT\SITE ^
214 --StartMode=jvm --StopMode=jvm ^
215 --StartClass=com.google.gerrit.launcher.GerritLauncher --StartMethod=daemonStart ^
216 --StopClass=com.google.gerrit.launcher.GerritLauncher --StopMethod=daemonStop ^
217 ++DependsOn=postgresql-x64-9.4
218====
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800219
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800220[[customize]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800221== Site Customization
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800222
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800223Gerrit Code Review supports some site-specific customization options.
David Pursehouse221d4f62012-06-08 17:38:08 +0900224For more information, see the related topics in this manual:
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800225
Francois Marierd550b462011-04-13 14:30:20 +1200226* link:config-reverseproxy.html[Reverse Proxy]
Shawn O. Pearcef384b442009-01-10 16:20:56 -0800227* link:config-sso.html[Single Sign-On Systems]
Dave Borowitz1e49e142013-04-09 12:14:57 -0700228* link:config-themes.html[Themes]
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800229* link:config-gitweb.html[Gitweb Integration]
Shawn O. Pearce7b405712009-05-08 18:27:53 -0700230* link:config-gerrit.html[Other System Settings]
Sasa Zivkove5fc90e2013-05-10 15:12:13 +0200231* link:config-auto-site-initialization.html[Automatic Site Initialization on Startup]
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800232
Shawn O. Pearce0b91a632009-02-06 12:53:59 -0800233
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800234[[anonymous_access]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800235== Anonymous Access
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800236
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800237Exporting the Git repository directory
238(link:config-gerrit.html#gerrit.basePath[gerrit.basePath]) over the
239anonymous, unencrypted git:// protocol is more efficient than
240Gerrit's internal SSH daemon. See the `git-daemon` documentation
241for details on how to configure this if anonymous access is desired.
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800242
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800243* http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html[man git-daemon]
Shawn O. Pearceb546c9b2009-02-24 13:12:39 -0800244
245
Martin Fick472bb9d2012-05-08 16:30:16 -0700246[[plugins]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800247== Plugins
Martin Fick472bb9d2012-05-08 16:30:16 -0700248
249Place Gerrit plugins in the review_site/plugins directory to have them loaded on Gerrit startup.
250
251
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800252== External Documentation Links
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800253
Shawn O. Pearce9ad8ba52009-12-11 19:06:21 -0800254* http://www.postgresql.org/docs/[PostgreSQL Documentation]
255* http://dev.mysql.com/doc/[MySQL Documentation]
256* http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html[git-daemon]
Shawn O. Pearced2b73db2009-01-09 11:55:47 -0800257
Shawn O. Pearce5500e692009-05-28 15:55:01 -0700258
259GERRIT
260------
261Part of link:index.html[Gerrit Code Review]
Yuxuan 'fishy' Wang99cb68d2013-10-31 17:26:00 -0700262
263SEARCHBOX
264---------