daemon
======

NAME
----
daemon - Gerrit network server

SYNOPSIS
--------
[verse]
'java' -jar gerrit.war 'daemon'
	-d <SITE_PATH>
	[\--enable-httpd | \--disable-httpd]
	[\--enable-sshd | \--disable-sshd]
	[\--console-log]
	[\--slave]
	[\--headless]

DESCRIPTION
-----------
Runs the Gerrit network daemon on the local system, configured as
per the local copy of link:config-gerrit.html[gerrit.config].

The path to gerrit.config is read from the metadata database,
which requires that all slaves (and master) reading from the same
database must place gerrit.config at the same location on the local
filesystem.  However, any option within gerrit.config, including
link:config-gerrit.html#gerrit.basePath[gerrit.basePath] may be set
to different values.

OPTIONS
-------

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

\--enable-httpd::
\--disable-httpd::
	Enable (or disable) the internal HTTP daemon, answering
	web requests.  Enabled by default.

\--enable-sshd::
\--disable-sshd::
	Enable (or disable) the internal SSH daemon, answering SSH
	clients and remotely executed commands.  Enabled by default.

\--slave::
	Run in slave mode, permitting only read operations
    by clients.  Commands which modify state such as
    link:cmd-receive-pack.html[receive-pack] (creates new changes
    or updates existing ones) or link:cmd-review.html[review]
    (sets approve marks) are disabled.
+
This option automatically implies '\--disable-httpd \--enable-sshd'.

\--console-log::
	Send log messages to the console, instead of to the standard
	log file '$site_path/logs/error_log'.

\--headless::
	Don't start the default Gerrit UI. May be useful when Gerrit is
	run with an alternative UI.

CONTEXT
-------
This command can only be run on a server which has direct
connectivity to the metadata database, and local access to the
managed Git repositories.

LOGGING
-------
Error and warning messages from the server are automatically written
to the log file under '$site_path/logs/error_log'.  This log file
is automatically rotated at 12:00 AM GMT each day, allowing an
external log cleaning service to clean up the prior logs.

KNOWN ISSUES
------------
Slave daemon caches can quickly become out of date when modifications
are made on the master.  The following configuration is suggested in
a slave to reduce the maxAge for each cache entry, so that changes
are recognized in a reasonable period of time:

----
[cache "accounts"]
  maxAge = 5 min
[cache "accounts_byemail"]
  maxAge = 5 min
[cache "diff"]
  maxAge = 5 min
[cache "groups"]
  maxAge = 5 min
[cache "projects"]
  maxAge = 5 min
[cache "sshkeys"]
  maxAge = 5 min
----

and if LDAP support was enabled, also include:
----
[cache "ldap_groups"]
  maxAge = 5 min
[cache "ldap_usernames"]
  maxAge = 5 min
----

Automatic cache coherency between master and slave systems is
planned to be implemented in a future version.

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