git-daemon man page on OpenBSD

Man page or keyword search:  
man Server   11362 pages
apropos Keyword Search (all sections)
Output format
OpenBSD logo
[printable version]



GIT-DAEMON(1)					    GIT-DAEMON(1)

NAME
       git-daemon - A really simple server for git repositories

SYNOPSIS
       git daemon [--verbose] [--syslog] [--export-all]
		    [--timeout=<n>] [--init-timeout=<n>] [--max-connections=<n>]
		    [--strict-paths] [--base-path=<path>] [--base-path-relaxed]
		    [--user-path | --user-path=<path>]
		    [--interpolated-path=<pathtemplate>]
		    [--reuseaddr] [--detach] [--pid-file=<file>]
		    [--enable=<service>] [--disable=<service>]
		    [--allow-override=<service>] [--forbid-override=<service>]
		    [--inetd | [--listen=<host_or_ipaddr>] [--port=<n>] [--user=<user> [--group=<group>]]
		    [<directory>...]

DESCRIPTION
       A   really  simple  TCP	git  daemon  that  normally  listens  on  port
       "DEFAULT_GIT_PORT" aka 9418. It waits for a  connection	asking	for  a
       service, and will serve that service if it is enabled.

       It   verifies   that   the  directory  has  the	magic  file  "git-dae-
       mon-export-ok", and it will refuse to export  any  git  directory  that
       hasn’t  explicitly	 been  marked  for export this way (unless the
       --export-all parameter is specified). If you pass some directory	 paths
       as  git	daemon	arguments,  you	 can  further restrict the offers to a
       whitelist comprising of those.

       By default, only upload-pack  service  is  enabled,  which  serves  git
       fetch-pack and git ls-remote clients, which are invoked from git fetch,
       git pull, and git clone.

       This is ideally suited for read-only updates, i.e.,  pulling  from  git
       repositories.

       An upload-archive also exists to serve git archive.

OPTIONS
       --strict-paths
	      Match paths exactly (i.e. don’t allow "/foo/repo" when the
	      real  path   is	"/foo/repo.git"	  or   "/foo/repo/.git")   and
	      don’t  do  user-relative  paths. git daemon will refuse to
	      start when this option is enabled and no whitelist is specified.

       --base-path=<path>
	      Remap  all the path requests as relative to the given path. This
	      is  sort	of  "GIT  root"	 -  if	you  run   git	 daemon	  with
	      --base-path=/srv/git  on	example.com,  then if you later try to

								1

GIT-DAEMON(1)					    GIT-DAEMON(1)

	      pull git://example.com/hello.git, git daemon will interpret  the
	      path as /srv/git/hello.git.

       --base-path-relaxed
	      If  --base-path  is  enabled  and	 repo  lookup fails, with this
	      option git daemon will attempt to lookup without	prefixing  the
	      base  path.  This	 is useful for switching to --base-path usage,
	      while still allowing the old paths.

       --interpolated-path=<pathtemplate>
	      To support virtual hosting, an interpolated path template can be
	      used to dynamically construct alternate paths. The template sup-
	      ports %H for the target hostname as supplied by the  client  but
	      converted	 to all lowercase, %CH for the canonical hostname, %IP
	      for the server’s IP address, %P for the port  number,  and
	      %D for the absolute path of the named repository. After interpo-
	      lation, the path is validated against the directory whitelist.

       --export-all
	      Allow pulling from all directories that look like GIT  reposito-
	      ries (have the objects and refs subdirectories), even if they do
	      not have the git-daemon-export-ok file.

       --inetd
	      Have the server run  as  an  inetd  service.  Implies  --syslog.
	      Incompatible  with --port, --listen, --user and --group options.

       --listen=<host_or_ipaddr>
	      Listen on a specific IP address or hostname. IP addresses can be
	      either  an IPv4 address or an IPv6 address if supported. If IPv6
	      is not supported, then --listen=hostname is also	not  supported
	      and  --listen  must  be given an IPv4 address. Incompatible with
	      --inetd option.

       --port=<n>
	      Listen on an alternative port. Incompatible with --inetd option.

       --init-timeout=<n>
	      Timeout between the moment the connection is established and the
	      client request is received (typically a rather low value,	 since
	      that should be basically immediate).

       --timeout=<n>
	      Timeout for specific client sub-requests. This includes the time
	      it takes for the server to process the sub-request and the  time
	      spent waiting for the next client’s request.

								2

GIT-DAEMON(1)					    GIT-DAEMON(1)

       --max-connections=<n>
	      Maximum  number of concurrent clients, defaults to 32. Set it to
	      zero for no limit.

       --syslog
	      Log to syslog instead of stderr. Note that this option does  not
	      imply  --verbose,	 thus by default only error conditions will be
	      logged.

       --user-path, --user-path=<path>
	      Allow ~user notation to be used in requests. When specified with
	      no  parameter,  requests	to git://host/~alice/foo is taken as a
	      request to access foo repository in the home directory  of  user
	      alice.  If  --user-path=path  is	specified, the same request is
	      taken as a request to access path/foo  repository	 in  the  home
	      directory of user alice.

       --verbose
	      Log  details about the incoming connections and requested files.

       --reuseaddr
	      Use SO_REUSEADDR when binding the listening socket. This	allows
	      the  server  to  restart	without waiting for old connections to
	      time out.

       --detach
	      Detach from the shell. Implies --syslog.

       --pid-file=<file>
	      Save the process id in file. Ignored  when  the  daemon  is  run
	      under --inetd.

       --user=<user>, --group=<group>
	      Change  daemon’s  uid  and gid before entering the service
	      loop. When only --user is given  without	--group,  the  primary
	      group  ID	 for  the  user	 is used. The values of the option are
	      given to getpwnam(3) and getgrnam(3) and	numeric	 IDs  are  not
	      supported.

	      Giving these options is an error when used with --inetd; use the
	      facility of inet daemon to achieve the same before spawning  git
	      daemon if needed.

       --enable=<service>, --disable=<service>
	      Enable/disable  the  service  site-wide per default. Note that a
	      service disabled site-wide can still be enabled  per  repository

								3

GIT-DAEMON(1)					    GIT-DAEMON(1)

	      if  it is marked overridable and the repository enables the ser-
	      vice with a configuration item.

       --allow-override=<service>, --forbid-override=<service>
	      Allow/forbid overriding the site-wide default with  per  reposi-
	      tory  configuration.  By	default, all the services are overrid-
	      able.

       <directory>
	      A directory to add to  the  whitelist  of	 allowed  directories.
	      Unless --strict-paths is specified this will also include subdi-
	      rectories of each named directory.

SERVICES
       These services can be globally enabled/disabled using the command  line
       options of this command. If a finer-grained control is desired (e.g. to
       allow git archive to be run against only in a few selected repositories
       the  daemon  serves), the per-repository configuration file can be used
       to enable or disable them.

       upload-pack
	      This serves git fetch-pack and  git  ls-remote  clients.	It  is
	      enabled  by  default, but a repository can disable it by setting
	      daemon.uploadpack configuration item to false.

       upload-archive
	      This serves git archive --remote. It is disabled by default, but
	      a repository can enable it by setting daemon.uploadarch configu-
	      ration item to true.

       receive-pack
	      This serves git send-pack clients, allowing anonymous  push.  It
	      is  disabled  by	default,  as there is no authentication in the
	      protocol (in other words, anybody can  push  anything  into  the
	      repository, including removal of refs). This is solely meant for
	      a closed LAN setting where everybody is friendly.	 This  service
	      can be enabled by daemon.receivepack configuration item to true.

EXAMPLES
       We assume the following in /etc/services

	      .ft C
	      $ grep 9418 /etc/services
	      git	      9418/tcp		      # Git Version Control System
	      .ft

								4

GIT-DAEMON(1)					    GIT-DAEMON(1)

       git daemon as inetd server
	      To set up git daemon as an inetd service that handles any repos-
	      itory  under  the	 whitelisted  set of directories, /pub/foo and
	      /pub/bar, place an entry like the following into /etc/inetd  all
	      on one line:

	      .ft C
		      git stream tcp nowait nobody  /usr/bin/git
			      git daemon --inetd --verbose --export-all
			      /pub/foo /pub/bar
	      .ft

       git daemon as inetd server for virtual hosts
	      To  set up git daemon as an inetd service that handles reposito-
	      ries for different virtual hosts, www.example.com and  www.exam-
	      ple.org,	place  an entry like the following into /etc/inetd all
	      on one line:

	      .ft C
		      git stream tcp nowait nobody /usr/bin/git
			      git daemon --inetd --verbose --export-all
			      --interpolated-path=/pub/%H%D
			      /pub/www.example.org/software
			      /pub/www.example.com/software
			      /software
	      .ft

	      In this example, the root-level directory /pub  will  contain  a
	      subdirectory for each virtual host name supported. Further, both
	      hosts   advertise	  repositories	 simply	  as   git://www.exam-
	      ple.com/software/repo.git. For pre-1.4.0 clients, a symlink from
	      /software into the appropriate default repository could be  made
	      as well.

       git daemon as regular daemon for virtual hosts
	      To  set  up git daemon as a regular, non-inetd service that han-
	      dles repositories for multiple virtual hosts based on  their  IP
	      addresses, start the daemon like this:

	      .ft C
		      git daemon --verbose --export-all

								5

GIT-DAEMON(1)					    GIT-DAEMON(1)

			      --interpolated-path=/pub/%IP/%D
			      /pub/192.168.1.200/software
			      /pub/10.10.220.23/software
	      .ft

	      In  this	example,  the root-level directory /pub will contain a
	      subdirectory for each virtual host IP address supported. Reposi-
	      tories  can  still be accessed by hostname though, assuming they
	      correspond to these IP addresses.

       selectively enable/disable services per repository
	      To enable git archive --remote and disable git fetch  against  a
	      repository,  have the following in the configuration file in the
	      repository (that is the file  config  next  to  HEAD,  refs  and
	      objects).

	      .ft C
		      [daemon]
			      uploadpack = false
			      uploadarch = true
	      .ft

ENVIRONMENT
       git  daemon  will  set REMOTE_ADDR to the IP address of the client that
       connected to it, if the IP address is available.	 REMOTE_ADDR  will  be
       available  in  the  environment	of hooks called when services are per-
       formed.

AUTHOR
       Written	 by    Linus	Torvalds    <torvalds@osdl.org:	   mailto:tor-
       valds@osdl.org>,	    YOSHIFUJI	  Hideaki    <yoshfuji@linux-ipv6.org:
       mailto:yoshfuji@linux-ipv6.org> and the git-list	 <git@vger.kernel.org:
       mailto:git@vger.kernel.org>

DOCUMENTATION
       Documentation  by Junio C Hamano and the git-list <git@vger.kernel.org:
       mailto:git@vger.kernel.org>.

GIT
       Part of the git(1) suite

								6

[top]

List of man pages available for OpenBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net