| |
| cgit - cgi for git |
| |
| |
| This is an attempt to create a fast web interface for the git scm, using a |
| builtin cache to decrease server io-pressure. |
| |
| |
| Installation |
| |
| Building cgit involves building a proper version of git. How to do this |
| depends on how you obtained the cgit sources: |
| |
| a) If you're working in a cloned cgit repository, you first need to |
| initialize and update the git submodule: |
| |
| $ git submodule init # register the git submodule in .git/config |
| $ $EDITOR .git/config # if you want to specify a different url for git |
| $ git submodule update # clone/fetch and checkout correct git version |
| |
| b) If you're building from a cgit tarball, you can download a proper git |
| version like this: |
| |
| $ make get-git |
| |
| |
| When either a) or b) has been performed, you can build and install cgit like |
| this: |
| |
| $ make |
| $ sudo make install |
| |
| This will install cgit.cgi and cgit.css into "/var/www/htdocs/cgit". You can |
| configure this location (and a few other things) by providing a "cgit.conf" |
| file (see the Makefile for details). |
| |
| |
| Dependencies: |
| -git 1.7.4 |
| -zip lib |
| -crypto lib |
| -openssl lib |
| |
| |
| Apache configuration |
| |
| A new Directory-section must probably be added for cgit, possibly something |
| like this: |
| |
| <Directory "/var/www/htdocs/cgit/"> |
| AllowOverride None |
| Options +ExecCGI |
| Order allow,deny |
| Allow from all |
| </Directory> |
| |
| |
| Runtime configuration |
| |
| The file /etc/cgitrc is read by cgit before handling a request. In addition |
| to runtime parameters, this file may also contain a list of repositories |
| displayed by cgit (see cgitrc.5.txt for further details). |
| |
| |
| The cache |
| |
| When cgit is invoked it looks for a cachefile matching the request and |
| returns it to the client. If no such cachefile exist (or if it has expired), |
| the content for the request is written into the proper cachefile before the |
| file is returned. |
| |
| If the cachefile has expired but cgit is unable to obtain a lock for it, the |
| stale cachefile is returned to the client. This is done to favour page |
| throughput over page freshness. |
| |
| The generated content contains the complete response to the client, including |
| the http-headers "Modified" and "Expires". |
| |
| |
| Online presence |
| |
| * The cgit homepage is hosted by cgit at http://git.zx2c4.com/cgit/about |
| |
| * Patches, bugreports, discussions and support should go to the cgit |
| mailing list: cgit@hjemli.net |