= 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=<PATH_TO_JAR>]
  [--dev]
  [--skip-all-downloads]
  [--skip-download=<LIBRARY_NAME>]
  [--reindex-threads=<N>]
--

== 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.

--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.

--show-cache-stats::
	Show cache statistics at the end of program.

--reindex-threads::
	Number of threads to use for reindex after init. Defaults to 1. Can be
	set to -1 to skip reindex after init. Skipping reindex will also not
	automatically start the daemon.

== 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
---------
