Saturday 23 November 2024
Cgit with OpenBSD httpd and slowcgi on FreeBSD
==============================================
Sentimental journey
-------------------
Visiting old repo's is a great way to embark on a sentimental journey.
In the past, I used GitWeb to browse my Git repo's.
Recently I installed OpenBSD httpd with slowcgi in a FreeBSD jail [1].
It didn't require much effort to add Cgit to it.
In my setup Cgit is only accessible in my local home network. I use it
as a convenient way to browse through my own repo's.
httpd configuration
-------------------
Just one extra line in /usr/local/etc/obhttpd.conf was enough:
...
location "/cgi-bin/*" {
fastcgi socket "/run/slowcgi.sock"
fastcgi param CGIT_CONFIG "/conf/cgit.conf"
root "/"
}
...
The line starting with "fastcgi param" sets the environment variable
CGIT_CONFIG, pointing to the Cgit configuration file.
Remember that this is within the chroot, so the real path is something
like /var/www/conf/cgit.conf
Cgit configuration
------------------
The example cgit configuration file is very informative.
Two settings that might be helpful:
virtual-root=/cgi-bin/cgit.cgi/
In the listing of the repo's, cgit adds this path before the
repo-name. F.e., the link to the repo 'my-stuff.git' becomes
/cgi-bin/cgit.cgi/my-stuff.git
scan-path=/projects
This path points to the directory with the repo's. Again, this is
within the chroot. In this example the real path is:
/var/www/projects
Read permissions for user www
-----------------------------
When you don't do any fancy stuff and Cgit is only used to read the
repo's, it is enough that the user www has read permissions in the
scan-path and all the repo's below it.
The repo's can be owned by any user. As long as the repo's are world
readable, Cgit can show their contents.
Static files
------------
The files cgit.css and cgit.png are to be placed in the web root,
like /var/www/htdocs/
Cgit requires a footer file, e.g., cgit.footer. The location of this
file is set in the Cgit configuration file.
It is great fun --and sometimes embarrassing-- to walk through the old
repositories.
Happy Cgit-ing!
[1]:
gopher://box.matto.nl/0/openbsd-httpd-with-cgi-on-freebsd.txt
Last edited: $Date: 2024/11/23 11:10:08 $