nosync-quiet option added courtesy Robin Johnson (Gentoo project)
[gitolite-doc.git] / docs / gitweb-daemon.mkd
blob953db50b9742a147c5fc9e57f38cdc196abd234c
1 # allowing access to gitweb and git-daemon
3 ----
5 !!! danger ""
7     Gitolite does **not** install or configure gitweb/git-daemon -- that is a
8     one-time setup you must do separately.
10 # gitweb
12 The following repos are deemed to be readable by gitweb:
14   * Any repos readable by the special user `gitweb`.
15   * Any repos containing one or more of the following types of lines:
16     (actually, any config variable starting with `gitweb`).
18         config gitweb.owner         =   owner name
19         config gitweb.description   =   some description
20         config gitweb.category      =   some category
22     Side note: the following shorter forms are available as [syntactic
23     sugar](non-core#syntactic-sugar) for the above longer forms:
25         owner       =   owner name
26         desc        =   some description
27         category    =   some category
29 The list of gitweb-readable repos is written to a file whose name is given by
30 the [rc](rc) file variable `GITWEB_PROJECTS_LIST`.  The default value of this
31 variable, if it is not specified or empty, is `$HOME/projects.list`.
33 In addition, each of the config variables described above is written to the
34 repo to which it pertains, so that gitweb can use them.
36 ## changing the UMASK
38 Gitweb (or cgit, redmine, etc.) typically runs under a different userid, and
39 the default permissions that gitolite sets make them unreadable.
41 See the section on the `UMASK` variable in the page for the [rc file](rc).
43 ## repo-specific authorisation in gitweb
45 Gitweb has a feature whereby it will call a (perl) function that you supply,
46 passing it the full path to the repo being accessed.  If the remote user is
47 authenticated, the username will be available, so your function can take those
48 two pieces of information and return true or false to allow or deny the
49 repository access.
51 If you want to use gitolite's access rules in making this determination, you
52 will first have to ensure that the HTTP username (i.e., the username known to
53 apache/gitweb) is the same as the gitolite username.  If you're using
54 gitolite's [http](http) mode, this is probably already true, but if you're using
55 the more widely used ssh mode, you'll have to make sure they match.
57 You then need to add [this code][gwch] to your gitweb.conf.
59 [gwch]: gitweb.conf.html
61 # git-daemon
63 Any repo readable by the special user `daemon` is deemed to be readable by
64 git-daemon.  For each of these repos, an empty file called
65 `git-daemon-export-ok` is created in the repository (i.e., the `repo.git`
66 directory inside `$HOME/repositories`).
68 # tips
70 Setting descriptions en-masse usually does not make sense, but you can
71 certainly do things like
73     repo @all
74         R       =   gitweb daemon
76 assuming you have other means of setting 'gitweb.description' and
77 'gitweb.owner'.
79 Also see [this][deny-rules] for a twist on that.
81 [deny-rules]: conf-2#read-access-respecting-deny-rules