Cgit
2024-10-24
Install Cgit with Caddy
Dependencies
xcaddy package from releases page.
Install caddy-cgi.
xcaddy build --with github.com/aksdb/caddy-cgi/v2
Install remaining dependencies.
sudo apt install gitolite3 cgit python-is-python3 python3-pygments python3-markdown docutils-common groff
Configuration
Make a git user.
sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
Configure gitolite for the git user in ~/.gitolite.rc
.
UMASK => 0027,
GIT_CONFIG_KEYS => 'gitweb.description gitweb.owner gitweb.homepage gitweb.category',
Add caddy user to the git group.
sudo usermod -aG git caddy
Configure cgit in /etc/cgitrc
.
#
# cgit config
# see cgitrc(5) for details
css=/cgit/cgit.css
logo=/cgit/cgit.png
favicon=/cgit/favicon.ico
enable-index-links=1
enable-commit-graph=1
enable-log-filecount=1
enable-log-linecount=1
enable-git-config=1
branch-sort=age
repository-sort=name
clone-url=https://git.hyperreal.coffee/$CGIT_REPO_URL git://git.hyperreal.coffee/$CGIT_REPO_URL ssh://git@git.hyperreal.coffee:$CGIT_REPO_URL
root-title=hyperreal.coffee Git repositories
root-desc=Source code and configs for my projects
##
## List of common mimetypes
##
mimetype.gif=image/gif
mimetype.html=text/html
mimetype.jpg=image/jpeg
mimetype.jpeg=image/jpeg
mimetype.pdf=application/pdf
mimetype.png=image/png
mimetype.svg=image/svg+xml
# Enable syntax highlighting
source-filter=/usr/lib/cgit/filters/syntax-highlighting.py
# Format markdown, rst, manpages, text files, html files, and org files.
about-filter=/usr/lib/cgit/filters/about-formatting.sh
##
### Search for these files in the root of the default branch of repositories
### for coming up with the about page:
##
readme=:README.md
readme=:README.org
robots=noindex, nofollow
section=personal-config
repo.url=doom-emacs-config
repo.path=/home/git/repositories/doom-emacs-config.git
repo.desc=My Doom Emacs config
org-mode README
Note: I haven’t gotten this to work yet. :-(
git clone https://github.com/amartos/cgit-org2html.git
cd cgit-org2html
sudo cp -v org2html /usr/lib/cgit/filters/html-converters/
sudo chmod +x /usr/lib/cgit/filters/html-converters/org2html
Download blob-formatting.sh.
sudo cp -v blob-formatting.sh /usr/lib/cgit/filters/
Catppuccin Mocha palette for org2html.css
git clone https://github.com/amartos/cgit-org2html.git
cd cgit-org2html/css
Change the color variables to Catppuccin Mocha hex codes.
$red: #f38ba8;
$green: #a6e3a1;
$orange: #fab387;
$gray: #585b70;
$yellow: #f9e2af;
$cyan: #89dceb;
$teal: #94e2d5;
$black: #11111b;
$white: #cdd6f4;
$cream: #f2cdcd;
Install sass.
sudo apt install -y sass
Generate org2html.css from the scss files, and copy the result to the cgit css directory.
sass org2html.scss:org2html.css
sudo cp -v org2html.css /usr/share/cgit/css/