Cvs /
Cvsweb
$ 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 }
}