= CGit = '''CGit''' is a minimal, lightweight web interface for git repositories. Naturally, the upstream team uses [[https://git.zx2c4.com/cgit/|a CGit instance]] for development of CGit. <> ---- == Installation == Most [[Linux]] and [[BSD]] distributions offer a `cgit` package. ---- == Configuration == CGit itself is configured with a `cgitrc(5)` file. === FastCGI === CGit is a [[Protocols/CGI|CGI]] program and depends on a FastCGI server. For a simple setup, consider [[Nginx/FastCGI#Spawn-fcgi|nginx(8), fcgiwrap(8), and spawn-fcgi(1)]]. The `nginx(8)` server configuration would look like: {{{ server { listen 80; server_name git.example.com; root /var/www; try_files $uri @cgit; location @cgit { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi; fastcgi_param PATH_INFO $uri; fastcgi_param QUERY_STRING $args; fastcgi_param HTTP_HOST $server_name; fastcgi_pass unix:/run/fcgiwrap.sock; } } }}} === HTTP(S) Cloning === Enable HTTP cloning within CGit. {{{ enable-http-clone=1 }}} Configure each repository with a space-delimited list of URLs. {{{ repo.name=my-repo repo.path=my-repo.git repo.clone-url=https://git.my-server.com/my-repo git@git.my-server.com/my-repo.git }}} SSH clone instructions can be included, but ports are incompatible with relative paths. In other words, `user@example.com:port/absolute/path/to/repo.git` and `user@example.com:relative/path/to/repo.git` ''are'' valid but `user@example.com:8022relative/path/to/repo.git` is ''not''. === Custom CSS === CGit is typically packaged with an official stylesheet used by upstream. The default `cgitrc(5)` file sets the stylesheet using: {{{ css=/cgit.css }}} Note that this is a URL, not a filesystem path. To include an HTML file into the head of the generated web page, use the `head-include` option in `cgitrc`. {{{ head-include=/path/to/my/head.html }}} === Custom Headers and Footers === To include an HTML file into the body of the generated web page, use one of the `header` or `footer` options in `cgitrc`. {{{ header=/path/to/my/header.html footer=/path/to/my/footer.html }}} This is most commonly used to insert a logo, contact and copyright information, or domain navigation. ---- == See also == [[https://man.archlinux.org/man/community/cgit/cgitrc.5.en|cgitrc(5)]] ---- CategoryRicottone