<h2>SYNOPSIS</h2>\r
<div class="sectionbody">\r
<div class="verseblock">\r
-<div class="content"><em>git-daemon</em> [--verbose] [--syslog] [--inetd | --port=n] [--export-all]\r
+<div class="content"><em>git-daemon</em> [--verbose] [--syslog] [--export-all]\r
[--timeout=n] [--init-timeout=n] [--strict-paths]\r
[--base-path=path] [--user-path | --user-path=path]\r
[--interpolated-path=pathtemplate]\r
+ [--reuseaddr] [--detach] [--pid-file=file]\r
[--enable=service] [--disable=service]\r
[--allow-override=service] [--forbid-override=service]\r
- [--reuseaddr] [--detach] [--pid-file=file]\r
- [--user=user [--group=group]] [directory…]</div></div>\r
+ [--inetd | [--listen=host_or_ipaddr] [--port=n] [--user=user [--group=group]]\r
+ [directory…]</div></div>\r
</div>\r
<h2>DESCRIPTION</h2>\r
<div class="sectionbody">\r
<p>\r
To support virtual hosting, an interpolated path template can be\r
used to dynamically construct alternate paths. The template\r
- supports %H for the target hostname as supplied by the client,\r
+ supports %H for the target hostname as supplied by the client but\r
+ converted to all lowercase, %CH for the canonical hostname,\r
+ %IP for the server's IP address, %P for the port number,\r
and %D for the absolute path of the named repository.\r
+ After interpolation, the path is validated against the directory\r
+ whitelist.\r
</p>\r
</dd>\r
<dt>\r
<dd>\r
<p>\r
Have the server run as an inetd service. Implies --syslog.\r
+ Incompatible with --port, --listen, --user and --group options.\r
</p>\r
</dd>\r
<dt>\r
---port\r
+--listen=host_or_ipaddr\r
</dt>\r
<dd>\r
<p>\r
- Listen on an alternative port.\r
+ Listen on an a specific IP address or hostname. IP addresses can\r
+ be either an IPv4 address or an IPV6 address if supported. If IPv6\r
+ is not supported, then --listen=hostname is also not supported and\r
+ --listen must be given an IPv4 address.\r
+ Incompatible with <em>--inetd</em> option.\r
+</p>\r
+</dd>\r
+<dt>\r
+--port=n\r
+</dt>\r
+<dd>\r
+<p>\r
+ Listen on an alternative port. Incompatible with <em>--inetd</em> option.\r
</p>\r
</dd>\r
<dt>\r
clients, a symlink from <tt>/software</tt> into the appropriate\r
default repository could be made as well.</p>\r
</dd>\r
+<dt>\r
+git-daemon as regular daemon for virtual hosts\r
+</dt>\r
+<dd>\r
+<p>\r
+ To set up <tt>git-daemon</tt> as a regular, non-inetd service that\r
+ handles repositories for multiple virtual hosts based on\r
+ their IP addresses, start the daemon like this:\r
+</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt> git-daemon --verbose --export-all\r
+ --interpolated-path=/pub/%IP/%D\r
+ /pub/192.168.1.200/software\r
+ /pub/10.10.220.23/software</tt></pre>\r
+</div></div>\r
+<p>In this example, the root-level directory <tt>/pub</tt> will contain\r
+a subdirectory for each virtual host IP address supported.\r
+Repositories can still be accessed by hostname though, assuming\r
+they correspond to these IP addresses.</p>\r
+</dd>\r
</dl>\r
</div>\r
<h2>Author</h2>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 25-Sep-2006 04:45:33 UTC\r
+Last updated 28-Sep-2006 07:39:09 UTC\r
</div>\r
</div>\r
</body>\r
SYNOPSIS
--------
[verse]
-'git-daemon' [--verbose] [--syslog] [--inetd | --port=n] [--export-all]
+'git-daemon' [--verbose] [--syslog] [--export-all]
[--timeout=n] [--init-timeout=n] [--strict-paths]
[--base-path=path] [--user-path | --user-path=path]
[--interpolated-path=pathtemplate]
+ [--reuseaddr] [--detach] [--pid-file=file]
[--enable=service] [--disable=service]
[--allow-override=service] [--forbid-override=service]
- [--reuseaddr] [--detach] [--pid-file=file]
- [--user=user [--group=group]] [directory...]
+ [--inetd | [--listen=host_or_ipaddr] [--port=n] [--user=user [--group=group]]
+ [directory...]
DESCRIPTION
-----------
--interpolated-path=pathtemplate::
To support virtual hosting, an interpolated path template can be
used to dynamically construct alternate paths. The template
- supports %H for the target hostname as supplied by the client,
+ supports %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 interpolation, the path is validated against the directory
+ whitelist.
--export-all::
Allow pulling from all directories that look like GIT repositories
--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 an 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::
- Listen on an alternative port.
+--port=n::
+ Listen on an alternative port. Incompatible with '--inetd' option.
--init-timeout::
Timeout between the moment the connection is established and the
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
+ handles repositories for multiple virtual hosts based on
+ their IP addresses, start the daemon like this:
++
+------------------------------------------------
+ git-daemon --verbose --export-all
+ --interpolated-path=/pub/%IP/%D
+ /pub/192.168.1.200/software
+ /pub/10.10.220.23/software
+------------------------------------------------
++
+In this example, the root-level directory `/pub` will contain
+a subdirectory for each virtual host IP address supported.
+Repositories can still be accessed by hostname though, assuming
+they correspond to these IP addresses.
+
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>, YOSHIFUJI Hideaki