cgit
cgit is a hyperfast web frontend for git repositories written in C. Cgit makes it possible for potential contributors to track and view project source code using a web interface.
Installation
USE flags
USE flags for www-apps/cgit a fast web-interface for git repositories
+highlight
|
Enable source code highlighting |
+lua
|
Enable support for Lua scripting |
doc
|
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
vhosts
|
Add support for installing web-based applications into a virtual-hosting environment |
cgit can be managed using webapp-config if the vhosts USE flag is enabled. Without vhosts USE flag set, cgit will be installed in the default path of the used web server.
Emerge
root #
emerge --ask www-apps/cgit
After installation some post-install instructions should be visible in the output from the install command. Please read these instructions carefully before proceeding to use cgit.
Additional software
cgit depends upon a web server. Choose one of the listed web servers available in gentoo portage:
After the installation and configuration of a web server is finished, continue with the cgit configuration process.
Configuration
Environment variables
- CGIT_CONFIG
Files
- /etc/cgitrc - The global configuration file. This is used to modifying settings for all users.
- /etc/cgitrepos - (optional) additional cgit generated repository list file
Cron (optional)
This method will generate a file /etc/cgitrepos using a local directory path.
Adjust the --scan-tree= path in the below command, to match the directory path to the git repositories:
root #
/usr/share/webapps/cgit/*/hostroot/cgi-bin/cgit.cgi --scan-tree=/PATH/TO/REPOSITORY > /etc/cgitrepos
Append a include statement include=/etc/cgitrepos
at the end of the /etc/cgitrc configuration file.
...
include /etc/cgitrepos
Add a cron job to schedule repository list generation every 24 hours:
#!/bin/sh
/usr/share/webapps/cgit/*/hostroot/cgi-bin/cgit.cgi --scan-tree=/PATH/TO/REPOSITORY > /etc/cgitrepos
Make the script executable, by setting +x bit:
root #
chmod +x /etc/cron.daily/cgitrepos
Troubleshooting
Issue 1
cgit has been build using the vhost USE flag, and configured as Apache vhost (virtual named host). Following files are not displayed in the browser:
- cgit.css
- cgit.png
- favicon.ico
The file robots.txt is ignored too. The application has wrong paths
settings.
Add Alias'es for the missing files in the virtual host configuration file:
...
Alias /cgit.css /var/www/cgit/htdocs/cgit/cgit.css
Alias /cgit.png /var/www/cgit/htdocs/cgit/cgit.png
Alias /favicon.ico /var/www/cgit/htdocs/cgit/favicon.ico
Alias /robots.txt /var/www/cgit/htdocs/cgit/robots.txt
ScriptAlias / "/var/www/cgit/cgi-bin/cgit.cgi/"
...
See also
- Git — distributed revision control and source code management tool.
- Webapp-config — Gentoo's installer for web-based applications.