about summary refs log tree commit diff
path: root/README
blob: 010dd5ccb02fac5da080833331dabdcd8ef165cd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

                       cgit - cgi for git


This is an attempt to create a fast web interface for the git scm, using a 
frontside cache to decrease server io-pressure.

When cgit is invoked, it looks for a cached page matching the request. If no
such cachefile exist (or it has expired), it is (re)generated. Finally, the
cachefile is returned to the client.

If the cachefile has expired, but cgit is unable to lock the cachefile, the 
client will get the stale cachefile after all. This is done to favour page
throughput over page freshness.

Also, when a cachefile is generated, a few cache-related http-headers are
created: "Modified" is set to current time(2), while "Expires" is set to 
time(2) + <cachefile TTL> * 60 (unless the TTL is negative, in which case it
is read as "60 * 60 * 24 * 365"). This is done to avoid repeated requests for
already visited pages.

The following cache-related options can be set in /etc/cgitrc:

  cache-root=<path>           root directory for cache files
  cache-root-ttl=<min>        TTL for the repo listing page
  cache-repo-ttl=<min>        TTL for repo summary pages
  cache-dynamic-ttl=<min>     TTL for pages with symbolic references
  cache-static-ttl=<min>      TTL for pages with sha1 references

The cachefiles are split into different directories, based on the requested
repository and page:

  Repo listing:  <cachedir>/index.html
  Repo summary:  <cachedir>/<repo>/index.html
  Repo subpage:  <cachedir>/<repo>/<page>/<querystring>.html
is reverts commit 279111dda15dd9170e11b9688eb973f2af2e6300. 2019-09-20Enable cookies in titleJune McEnroe Perhaps this will make it less suspicious to Google. Who knows. 2019-09-16Use sensitivity aliases in TF2June McEnroe 2019-09-16Add The Just CityJune McEnroe 2019-09-12Only GET the final redirect locationJune McEnroe 2019-09-12Consume entire bodyJune McEnroe Aborting the request and leaving data around may be causing intermittent errors. Just discard the rest of the data. 2019-09-10Add title -v flagJune McEnroe 2019-09-10Use curl error bufferJune McEnroe 2019-09-10Set Accept-Encoding in titleJune McEnroe Because apparently it's fine for servers to respond with Content-Encoding you didn't ask for, and curl won't decode it if you didn't ask for it. 2019-09-08Set title User-AgentJune McEnroe Some things don't like you if you don't send one. 2019-09-07Add -x flag to titleJune McEnroe 2019-09-07Ignore SIGPIPE in relayJune McEnroe Allows restarting consumers safely. 2019-09-07Add A Memory Called EmpireJune McEnroe 2019-09-05Handle lack of Content-TypeJune McEnroe 2019-09-05Use CURLINFO_CONTENT_TYPEJune McEnroe Oops, didn't see this. 2019-09-05Decode entities in titlesJune McEnroe 2019-09-05Print title as soon as it's availableJune McEnroe 2019-09-05Use CURL_PREFIX to set flagsJune McEnroe 2019-09-05Add titleJune McEnroe 2019-09-04Add Avorter n'est pas tuerJune McEnroe 2019-08-29Unset executable on shell scriptsJune McEnroe 2019-08-29Add long-missing setopt to bin.7June McEnroe 2019-08-29Add editJune McEnroe