Skip to content

Commit

Permalink
doc/http-backend: give some lighttpd config examples
Browse files Browse the repository at this point in the history
The examples in the documentation are all for Apache. Let's
at least cover the basics: an anonymous server, an
authenticated server, and a "half auth" server with
anonymous read and authenticated write.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Apr 11, 2013
1 parent fdae191 commit 3813a33
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions Documentation/git-http-backend.txt
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,61 @@ ScriptAliasMatch \
ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/
----------------------------------------------------------------

Lighttpd::
Ensure that `mod_cgi`, `mod_alias, `mod_auth`, `mod_setenv` are
loaded, then set `GIT_PROJECT_ROOT` appropriately and redirect
all requests to the CGI:
+
----------------------------------------------------------------
alias.url += ( "/git" => "/usr/lib/git-core/git-http-backend" )
$HTTP["url"] =~ "^/git" {
cgi.assign = ("" => "")
setenv.add-environment = (
"GIT_PROJECT_ROOT" => "/var/www/git",
"GIT_HTTP_EXPORT_ALL" => ""
)
}
----------------------------------------------------------------
+
To enable anonymous read access but authenticated write access:
+
----------------------------------------------------------------
$HTTP["querystring"] =~ "service=git-receive-pack" {
include "git-auth.conf"
}
$HTTP["url"] =~ "^/git/.*/git-receive-pack$" {
include "git-auth.conf"
}
----------------------------------------------------------------
+
where `git-auth.conf` looks something like:
+
----------------------------------------------------------------
auth.require = (
"/" => (
"method" => "basic",
"realm" => "Git Access",
"require" => "valid-user"
)
)
# ...and set up auth.backend here
----------------------------------------------------------------
+
Note that unlike the similar setup with Apache, we can easily match the
query string for receive-pack, catching the initial request from the
client. This means that the server administrator does not have to worry
about configuring `http.receivepack` for the repositories (the default
value, which enables it only in the case of authentication, is
sufficient).
+
To require authentication for both reads and writes:
+
----------------------------------------------------------------
$HTTP["url"] =~ "^/git/private" {
include "git-auth.conf"
}
----------------------------------------------------------------


ENVIRONMENT
-----------
Expand Down

0 comments on commit 3813a33

Please sign in to comment.