From 6ab2aa0a4bc0d67b7ba1cd3307706fe483c0b797 Mon Sep 17 00:00:00 2001 From: Tommi Virtanen Date: Sun, 25 Nov 2007 18:32:02 +0200 Subject: Add instructions for using gitweb. --- README.rst | 33 +++++++++++++++++++++++++++++++++ gitweb.conf | 20 ++++++++++++++++++++ lighttpd-gitweb.conf | 21 +++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 gitweb.conf create mode 100644 lighttpd-gitweb.conf diff --git a/README.rst b/README.rst index b381ee3..ee14705 100644 --- a/README.rst +++ b/README.rst @@ -157,6 +157,39 @@ For other operating systems, use a similar invocation in an ``init.d`` script, ``/etc/inittab``, ``inetd.conf``, ``runit``, or something like that (good luck). +Note that this short snippet is not a substitute for reading and +understanding the relevant documentation. + + +Using gitweb +============ + +``gitweb`` is a CGI script that lets one browse ``git`` repositories +on the web. It is most commonly used anonymously, but you could also +require authentication in your web server, before letting people use +it. ``gitosis`` can help here by generating a list of projects that +are publicly visible. Simply add a section ``[repo REPOSITORYNAME]`` +to your ``gitosis.conf``, and allow publishing with ``gitweb = yes`` +(or globally under ``[gitosis]``). You should also set ``description`` +and ``owner`` for each repository. + +Here's a LightTPD_ config file snippet showing how to run ``gitweb`` +as a CGI: + +.. _LightTPD: http://www.lighttpd.net/ + +.. include:: lighttpd-gitweb.conf + :literal: + +And a simple ``gitweb.conf`` file: + +.. include:: gitweb.conf + :literal: + +Note that this short snippet is not a substitute for reading and +understanding the relevant documentation. + + Contact ======= diff --git a/gitweb.conf b/gitweb.conf new file mode 100644 index 0000000..83cde79 --- /dev/null +++ b/gitweb.conf @@ -0,0 +1,20 @@ +# Include the global configuration, if found. +do "/etc/gitweb.conf" if -e "/etc/gitweb.conf"; + +# Point to projects.list file generated by gitosis. +# Here gitosis manages the user "git", who has a +# home directory of /srv/example.com/git +$projects_list = "/srv/example.com/git/repositories/gitosis-admin.git/projects.list"; + +# Where the actual repositories are located. +$projectroot = "/srv/example.com/git/repositories"; + +# By default, gitweb will happily let people browse any repository +# they guess the name of. This may or may not be what you wanted. I +# choose to allow gitweb to show only repositories that git-daemon +# is already sharing anonymously. +$export_ok = "git-daemon-export-ok"; + +# A list of base urls where all the repositories can be cloned from. +# Easier than having per-repository cloneurl files. +@git_base_url_list = ('git://example.com'); diff --git a/lighttpd-gitweb.conf b/lighttpd-gitweb.conf new file mode 100644 index 0000000..cd0bedd --- /dev/null +++ b/lighttpd-gitweb.conf @@ -0,0 +1,21 @@ +server.modules += ( + "mod_cgi", + "mod_setenv", +) + +url.redirect += ( + "^/gitweb$" => "http://example.com/gitweb/", +) +alias.url += ( + "/gitweb/" => "/usr/lib/cgi-bin/gitweb.cgi", + "/gitweb.css" => "/var/www/gitweb.css", + "/git-logo.png" => "/var/www/git-logo.png", + "/git-favicon.png" => "/var/www/git-favicon.png", +) + +$HTTP["url"] =~ "^/gitweb/" { + setenv.add-environment = ( + "GITWEB_CONFIG" => "/srv/example.com/gitweb/gitweb.conf", + ) + cgi.assign = ( "" => "" ) +} -- cgit v1.2.3