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
	}

}