t9400: Add test cases for config file handling
[git/gitweb.git] / gitweb / README
blobe02e90f0429be0d2a69b76571101f20b8f75530f
1 GIT web Interface
2 =================
4 The one working on:
5   http://www.kernel.org/git/
7 From the git version 1.4.0 gitweb is bundled with git.
10 How to configure gitweb for your local system
11 ---------------------------------------------
13 You can specify the following configuration variables when building GIT:
14  * GITWEB_SITENAME
15    Shown in the title of all generated pages, defaults to the servers name.
16  * GITWEB_PROJECTROOT
17    The root directory for all projects shown by gitweb.
18  * GITWEB_LIST
19    points to a directory to scan for projects (defaults to project root)
20    or to a file for explicit listing of projects.
21  * GITWEB_HOMETEXT
22    points to an .html file which is included on the gitweb project
23    overview page.
24  * GITWEB_CSS
25    Points to the location where you put gitweb.css on your web server.
26  * GITWEB_LOGO
27    Points to the location where you put git-logo.png on your web server.
28  * GITWEB_CONFIG
29    This file will be loaded using 'require' and can be used to override any
30    of the options above as well as some other options - see the top of
31    'gitweb.cgi' for their full list and description.  If the environment
32    $GITWEB_CONFIG is set when gitweb.cgi is executed the file in the
33    environment variable will be loaded instead of the file
34    specified when gitweb.cgi was created.
37 Runtime gitweb configuration
38 ----------------------------
40 You can adjust gitweb behaviour using the file specified in `GITWEB_CONFIG`
41 (defaults to 'gitweb_config.perl' in the same directory as the CGI).
42 See the top of 'gitweb.cgi' for the list of variables and some description.
43 The most notable thing that is not configurable at compile time are the
44 optional features, stored in the '%features' variable. You can find further
45 description on how to reconfigure the default features setting in your
46 `GITWEB_CONFIG` or per-project in `project.git/config` inside 'gitweb.cgi'.
49 Webserver configuration
50 -----------------------
52 If you want to have one URL for both gitweb and your http://
53 repositories, you can configure apache like this:
55 <VirtualHost www:80>
56     ServerName git.domain.org
57     DocumentRoot /pub/git
58     RewriteEngine on
59     RewriteRule ^/(.*\.git/(?!/?(info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]
60     SetEnv      GITWEB_CONFIG   /etc/gitweb.conf
61 </VirtualHost>
63 The above configuration expects your public repositories to live under
64 /pub/git and will serve them as http://git.domain.org/dir-under-pub-git,
65 both as cloneable GIT URL and as browseable gitweb interface.
66 If you then start your git-daemon with --base-path=/pub/git --export-all
67 then you can even use the git:// URL with exactly the same path.
69 Setting the environment variable GITWEB_CONFIG will tell gitweb to use
70 the named file (i.e. in this example /etc/gitweb.conf) as a
71 configuration for gitweb.  Perl variables defined in here will
72 override the defaults given at the head of the gitweb.perl (or
73 gitweb.cgi).  Look at the comments in that file for information on
74 which variables and what they mean.
77 Originally written by:
78   Kay Sievers <kay.sievers@vrfy.org>
80 Any comment/question/concern to:
81   Git mailing list <git@vger.kernel.org>