$ doas pkg_add cvsweb
After installation, make sure to read ?/usr/local/share/doc/pkg-readmes/cvsweb
Then we need to set up a chroot for CVSweb in /var/www. You will
first need to install perl inside the chroot. Afterwards,
we run:
cp -p /usr/bin/{co,cvs,diff,perl,rcsdiff,rlog,uname} /var/www/usr/bin/
mkdir -p /var/www/cvs
chown $USER:commit /var/www/cvs
Sync the repos
$ openrsync -a --delete --rsync-path=/usr/bin/openrsync /CVS/ /var/www/cvs/
In crontab -e:
@daily -s /usr/bin/openrsync -a --delete --rsync-path=/usr/bin/openrsync /CVS/ /var/www/cvs/
Configuration
cvsweb assumes it is running chrooted and the configuration file is
hard-coded to use /conf/cvsweb/cvsweb.conf. /var/www/conf/cvsweb/cvsweb.conf
will serve the repository /var/www/cvs/, which should contain CVSROOT
and the module directories.
Other repositories, each containing CVSROOT and modules, can
be added to the @CVSrepositories array.
Add this to the end of /etc/httpd.conf:
server "example.com" {
listen on * port 80
location "/cgi-bin/*" {
fastcgi
root "/"
}
location match "/" {
request rewrite "/cgi-bin/cvsweb"
}
location "/.well-known/acme-challenge/*" {
root "/acme"
request strip 2
}
}