HowTo: Set up Merecat with cgit
This post details how to set up cgit with Merecat httpd. It began as a GitHub issue report by Mr Alok G. Singh, who had run into problems setting it up, and ended up as a HowTo.
My server has several sub-domains set up, hence I run Merecat with
the virtual-host = true
setting and bind mounts in /var/www/
.
Detailed in the online documentation.
Setting up cgit requires a bit of linking & symlinking on top of
the bind mounts, at least on Debian/Ubuntu. The bundled cgit package is
installed into both /usr/share
and /usr/lib
, and when Merecat has
chrooted those directories will not be available. I’ve bind mounted my
/usr/share/cgit
to /var/www/cgit.troglobit.com
and linked the
cgit.cgi
from ../../lib/cgit/
:
root@example:/usr/share/cgit# ll
total 1000
drwxr-xr-x 2 root root 4096 Mar 30 11:16 ./
drwxr-xr-x 140 root root 4096 Mar 30 09:39 ../
-rwxr-xr-x 2 root root 986800 Feb 12 2016 cgit.cgi*
-rw-r--r-- 1 root root 13312 Feb 12 2016 cgit.css
-rw-r--r-- 1 root root 1278 Feb 12 2016 cgit.png
-rw-r--r-- 1 root root 1078 Feb 12 2016 favicon.ico
lrwxrwxrwx 1 root root 22 Mar 30 11:16 filters -> ../../lib/cgit/filters/
lrwxrwxrwx 1 root root 8 Mar 30 10:16 index.cgi -> cgit.cgi*
-rw-r--r-- 1 root root 47 Feb 12 2016 robots.txt
Merecat httpd currently does not support URL rewrite, so I’ve set up
cgit as follows, /etc/cgitrc
:
# cgit config
css=/cgit.css
logo=/cgit.png
# Prepend this to all URLs
virtual-root=/cgit.cgi/
# Home of all GIT repos
scan-path=/srv/git/
# if you do not want that webcrawler (like google) index your site
robots=noindex, nofollow
Note the leading slash in the virtual-root
. The resulting site can
be viewed here: http://cgit.troglobit.com