daemon: Set SO_REUSEADDR on listening sockets.
[git/git.git] / Documentation / git-daemon.txt
CommitLineData
7fc9d69f
JH
1git-daemon(1)
2=============
3
4NAME
5----
72e9340c 6git-daemon - A really simple server for git repositories.
7fc9d69f
JH
7
8SYNOPSIS
9--------
353ce815 10[verse]
2707da9c 11'git-daemon' [--verbose] [--syslog] [--inetd | --port=n] [--export-all]
b21c31c9
PB
12 [--timeout=n] [--init-timeout=n] [--strict-paths]
13 [--base-path=path] [directory...]
7fc9d69f
JH
14
15DESCRIPTION
16-----------
62cd033d
LAS
17A really simple TCP git daemon that normally listens on port "DEFAULT_GIT_PORT"
18aka 9418. It waits for a connection, and will just execute "git-upload-pack"
19when it gets one.
20
21It's careful in that there's a magic request-line that gives the command and
22what directory to upload, and it verifies that the directory is ok.
7fc9d69f 23
62cd033d
LAS
24It verifies that the directory has the magic file "git-daemon-export-ok", and
25it will refuse to export any git directory that hasn't explicitly been marked
2707da9c
PB
26for export this way (unless the '--export-all' parameter is specified). If you
27pass some directory paths as 'git-daemon' arguments, you can further restrict
28the offers to a whitelist comprising of those.
62cd033d
LAS
29
30This is ideally suited for read-only updates, ie pulling from git repositories.
7fc9d69f
JH
31
32OPTIONS
33-------
ce335fe0 34--strict-paths::
4dbd1352
AE
35 Match paths exactly (i.e. don't allow "/foo/repo" when the real path is
36 "/foo/repo.git" or "/foo/repo/.git") and don't do user-relative paths.
37 git-daemon will refuse to start when this option is enabled and no
38 whitelist is specified.
39
b21c31c9
PB
40--base-path::
41 Remap all the path requests as relative to the given path.
42 This is sort of "GIT root" - if you run git-daemon with
43 '--base-path=/srv/git' on example.com, then if you later try to pull
44 'git://example.com/hello.git', `git-daemon` will interpret the path
45 as '/srv/git/hello.git'. Home directories (the '~login' notation)
46 access is disabled.
47
2707da9c
PB
48--export-all::
49 Allow pulling from all directories that look like GIT repositories
4dbd1352 50 (have the 'objects' and 'refs' subdirectories), even if they
2707da9c
PB
51 do not have the 'git-daemon-export-ok' file.
52
62cd033d 53--inetd::
bce8230d 54 Have the server run as an inetd service. Implies --syslog.
7fc9d69f 55
62cd033d
LAS
56--port::
57 Listen on an alternative port.
7fc9d69f 58
2707da9c
PB
59--init-timeout::
60 Timeout between the moment the connection is established and the
61 client request is received (typically a rather low value, since
62 that should be basically immediate).
63
64--timeout::
65 Timeout for specific client sub-requests. This includes the time
66 it takes for the server to process the sub-request and time spent
67 waiting for next client's request.
68
9048fe1c
PB
69--syslog::
70 Log to syslog instead of stderr. Note that this option does not imply
71 --verbose, thus by default only error conditions will be logged.
72
b5cf3c8b
PB
73--verbose::
74 Log details about the incoming connections and requested files.
75
4dbd1352
AE
76<directory>::
77 A directory to add to the whitelist of allowed directories. Unless
78 --strict-paths is specified this will also include subdirectories
79 of each named directory.
80
7fc9d69f
JH
81Author
82------
4dbd1352
AE
83Written by Linus Torvalds <torvalds@osdl.org>, YOSHIFUJI Hideaki
84<yoshfuji@linux-ipv6.org> and the git-list <git@vger.kernel.org>
7fc9d69f
JH
85
86Documentation
87--------------
88Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
89
90GIT
91---
a7154e91 92Part of the gitlink:git[7] suite
7fc9d69f 93