= init

== NAME
init - Initialize a new Gerrit server installation or upgrade an existing
installation.

== SYNOPSIS
[verse]
--
_java_ -jar gerrit.war _init_
  -d <SITE_PATH>
  [--batch]
  [--delete-caches]
  [--no-auto-start]
  [--skip-plugins]
  [--list-plugins]
  [--install-plugin=<PLUGIN_NAME>]
  [--install-all-plugins]
  [--secure-store-lib]
  [--dev]
  [--skip-all-downloads]
  [--skip-download=<LIBRARY_NAME>]
--

== DESCRIPTION
Creates a new Gerrit server installation, interactively prompting
for some basic setup prior to writing default configuration files
into a newly created `$site_path`.

If run in an existing `$site_path`, init upgrades existing resources
(e.g. NoteDb schema, plugins) as necessary.

== OPTIONS
-b::
--batch::
	Run in batch mode, skipping interactive prompts. For a fresh
	install, reasonable configuration defaults are chosen based
	on the whims of the Gerrit developers. On upgrades, the existing
	settings in `gerrit.config` are respected.
+
If during a schema migration unused objects (e.g. tables, columns)
are detected, they are *not* automatically dropped; a list of SQL
statements to drop these objects is provided. To drop the unused
objects these SQL statements must be executed manually.

--delete-caches::
	Force deletion of all persistent cache files. Note that
	re-creation of these caches may be expensive.

--no-auto-start::
	Don't automatically start the daemon after initializing a
	newly created site path.  This permits the administrator
	to inspect and modify the configuration before the daemon
	is started.

-d::
--site-path::
	Location of the `gerrit.config` file, and all other per-site
	configuration data, supporting libraries and log files.

--skip-plugins::
	Entirely skip installation and initialization of plugins. This option
	is needed when initializing a gerrit site without an archive. That
	happens when running gerrit acceptance or integration tests in a
	debugger, using classes. Supplying this option leads to ignoring the
	`--install-plugin` and `--install-all-plugins` options, if supplied as well.

--list-plugins::
	Print names of plugins that can be installed during init process.

--install-all-plugins::
	Automatically install all plugins from gerrit.war without asking.
	This option also works in batch mode. This option cannot be supplied
	alongside `--install-plugin`.

--secure-store-lib::
	Path to the jar providing the chosen
	link:dev-plugins.html#secure-store[SecureStore] implementation class.
	This option is used in the same way as the `--new-secure-store-lib` option
	documented in link:pgm-SwitchSecureStore.html[SwitchSecureStore].

--install-plugin::
	Automatically install plugin with given name without asking.
	This option also works in batch mode. This option may be supplied
	more than once to install multiple plugins. This option cannot be
	supplied alongside `--install-all-plugins`.

--dev::
	Install in developer mode. Default configuration settings are
	chosen to run the Gerrit server as a developer.

--skip-all-downloads::
	Do not automatically download and install required libraries. The
	administrator must manually install the required libraries in the `lib/`
	folder.

--skip-download::
	Do not automatically download and install the library with the given name.
	The administrator must manually install the required library in the `lib/`
	folder.

== CONTEXT
This command can only be run on a server which has direct local access to the
managed Git repositories.

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
