git-daemon support for user-relative paths.
[git/jnareb-git.git] / Documentation / git-daemon.txt
blob972e0e1571391efb6041f0e7bff5df18fb1a4eaf
1 git-daemon(1)
2 =============
4 NAME
5 ----
6 git-daemon - A really simple server for git repositories.
8 SYNOPSIS
9 --------
10 'git-daemon' [--verbose] [--syslog] [--inetd | --port=n] [--export-all]
11              [--timeout=n] [--init-timeout=n] [directory...]
13 DESCRIPTION
14 -----------
15 A really simple TCP git daemon that normally listens on port "DEFAULT_GIT_PORT"
16 aka 9418. It waits for a connection, and will just execute "git-upload-pack"
17 when it gets one.
19 It's careful in that there's a magic request-line that gives the command and
20 what directory to upload, and it verifies that the directory is ok.
22 It verifies that the directory has the magic file "git-daemon-export-ok", and
23 it will refuse to export any git directory that hasn't explicitly been marked
24 for export this way (unless the '--export-all' parameter is specified). If you
25 pass some directory paths as 'git-daemon' arguments, you can further restrict
26 the offers to a whitelist comprising of those.
28 This is ideally suited for read-only updates, ie pulling from git repositories.
30 OPTIONS
31 -------
32 +--strict-paths::
33         Match paths exactly (i.e. don't allow "/foo/repo" when the real path is
34         "/foo/repo.git" or "/foo/repo/.git") and don't do user-relative paths.
35         git-daemon will refuse to start when this option is enabled and no
36         whitelist is specified.
38 --export-all::
39         Allow pulling from all directories that look like GIT repositories
40         (have the 'objects' and 'refs' subdirectories), even if they
41         do not have the 'git-daemon-export-ok' file.
43 --inetd::
44         Have the server run as an inetd service. Implies --syslog.
46 --port::
47         Listen on an alternative port.
49 --init-timeout::
50         Timeout between the moment the connection is established and the
51         client request is received (typically a rather low value, since
52         that should be basically immediate).
54 --timeout::
55         Timeout for specific client sub-requests. This includes the time
56         it takes for the server to process the sub-request and time spent
57         waiting for next client's request.
59 --syslog::
60         Log to syslog instead of stderr. Note that this option does not imply
61         --verbose, thus by default only error conditions will be logged.
63 --verbose::
64         Log details about the incoming connections and requested files.
66 <directory>::
67         A directory to add to the whitelist of allowed directories. Unless
68         --strict-paths is specified this will also include subdirectories
69         of each named directory.
71 Author
72 ------
73 Written by Linus Torvalds <torvalds@osdl.org>, YOSHIFUJI Hideaki
74 <yoshfuji@linux-ipv6.org> and the git-list <git@vger.kernel.org>
76 Documentation
77 --------------
78 Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
80 GIT
81 ---
82 Part of the gitlink:git[7] suite