Cgit

 
$ doas pkg_add cgit
 

Inside /etc/httpd.conf:

 
server "git.ircnow.org" {
        listen on * port 80
        location "/.well-known/acme-challenge/*" {
                root "/acme"
                request strip 2
        }
        location * {
                block return 302 "https://$HTTP_HOST$REQUEST_URI"
        }
}
server "git.ircnow.org" {
        listen on * tls port 443
        tls {
                certificate "/etc/ssl/git.ircnow.org.fullchain.pem"
                key "/etc/ssl/private/git.ircnow.org.key"        
        }
        location "/.well-known/acme-challenge/*" {
                root "/acme"
                request strip 2
                no fastcgi
        }
        location "*~" {
                block drop
        }
        location "/cgit.*" {
                root "/cgit"
                no fastcgi
        }
        root "/cgi-bin/cgit.cgi"
        fastcgi socket "/run/slowcgi.sock"
}
 

Unconfirmed: you may need 'no fastcgi' inside the acme block to enable renewal of certs.

Make sure also to edit, like this /var/www/conf/cgitrc:

 
root-title=Name cGIT repository
root-desc=a fast webinterface for the git dscm

css=/cgit.css
logo=/cgit.png
favicon=/favicon.png
robots=noindex, nofollow

enable-index-links=1
enable-log-filecount=1
enable-log-linecount=1

snapshots=tar.gz tar.bz2 zip

virtual-root=/
scan-path=/repos
 

Create new repo

 
cd ~/
mkdir repos
git init --bare my_project.git
doas mv my_project.git /var/www/repos/my_project.git
doas ln -s /var/www/repos/my_project.git /home/user/repos/my_project.git
doas chown user:user /var/www/repos/my_project.git
doas chown user:user /home/user/repos/my_project.git

git clone user@ircnow.org:repos/my_project.git