$ doas pkg_add cvsweb After installation, make sure to read [/usr/local/share/doc/pkg-readmes/cvsweb](/Attach:cvsweb-readme.txt) Then we need to set up a chroot for CVSweb in /var/www. You will first need to install [perl inside the chroot](/openhttpd/perl). 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 } }