1git-daemon(1) 2============= 3 4NAME 5---- 6git-daemon - A really simple server for git repositories 7 8SYNOPSIS 9-------- 10[verse] 11'git-daemon' [--verbose] [--syslog] [--inetd | --port=n] [--export-all] 12 [--timeout=n] [--init-timeout=n] [--strict-paths] 13 [--base-path=path] [--user-path | --user-path=path] 14 [directory...] 15 16DESCRIPTION 17----------- 18A really simple TCP git daemon that normally listens on port "DEFAULT_GIT_PORT" 19aka 9418. It waits for a connection, and will just execute "git-upload-pack" 20when it gets one. 21 22It's careful in that there's a magic request-line that gives the command and 23what directory to upload, and it verifies that the directory is OK. 24 25It verifies that the directory has the magic file "git-daemon-export-ok", and 26it will refuse to export any git directory that hasn't explicitly been marked 27for export this way (unless the '--export-all' parameter is specified). If you 28pass some directory paths as 'git-daemon' arguments, you can further restrict 29the offers to a whitelist comprising of those. 30 31This is ideally suited for read-only updates, i.e., pulling from git repositories. 32 33OPTIONS 34------- 35--strict-paths:: 36 Match paths exactly (i.e. don't allow "/foo/repo" when the real path is 37 "/foo/repo.git" or "/foo/repo/.git") and don't do user-relative paths. 38 git-daemon will refuse to start when this option is enabled and no 39 whitelist is specified. 40 41--base-path:: 42 Remap all the path requests as relative to the given path. 43 This is sort of "GIT root" - if you run git-daemon with 44 '--base-path=/srv/git' on example.com, then if you later try to pull 45 'git://example.com/hello.git', `git-daemon` will interpret the path 46 as '/srv/git/hello.git'. 47 48--export-all:: 49 Allow pulling from all directories that look like GIT repositories 50 (have the 'objects' and 'refs' subdirectories), even if they 51 do not have the 'git-daemon-export-ok' file. 52 53--inetd:: 54 Have the server run as an inetd service. Implies --syslog. 55 56--port:: 57 Listen on an alternative port. 58 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 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 73--user-path, --user-path=path:: 74 Allow ~user notation to be used in requests. When 75 specified with no parameter, requests to 76 git://host/~alice/foo is taken as a request to access 77 'foo' repository in the home directory of user `alice`. 78 If `--user-path=path` is specified, the same request is 79 taken as a request to access `path/foo` repository in 80 the home directory of user `alice`. 81 82--verbose:: 83 Log details about the incoming connections and requested files. 84 85<directory>:: 86 A directory to add to the whitelist of allowed directories. Unless 87 --strict-paths is specified this will also include subdirectories 88 of each named directory. 89 90Author 91------ 92Written by Linus Torvalds <torvalds@osdl.org>, YOSHIFUJI Hideaki 93<yoshfuji@linux-ipv6.org> and the git-list <git@vger.kernel.org> 94 95Documentation 96-------------- 97Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. 98 99GIT 100--- 101Part of the gitlink:git[7] suite 102