From 36713da57deaa6fe8a4bd6d7d9592e511ccbca76 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Sat, 21 Sep 2024 11:22:25 -0700 Subject: try to configure using the cgit module --- nix/hosts/wildcat/configuration.nix | 96 ++++++++++++------------------------- 1 file changed, 31 insertions(+), 65 deletions(-) (limited to 'nix') diff --git a/nix/hosts/wildcat/configuration.nix b/nix/hosts/wildcat/configuration.nix index 67adf29..9df4496 100644 --- a/nix/hosts/wildcat/configuration.nix +++ b/nix/hosts/wildcat/configuration.nix @@ -1,57 +1,9 @@ -{ config, pkgs, ... }: +{ lib, pkgs, ... }: let robots-deny = pkgs.writeText "robots.txt" '' User-agent: * Disallow: / ''; - - cgitrc = '' - # Global configuration - virtual-root=/ - - enable-http-clone=1 - clone-url=https://git.fcuny.net/$CGIT_REPO_URL - - # I've fewer than 150 repos, all should be able to be listed on - # the main page - max-repo-count=150 - - # limit to year for the stats - max-stats=year - - snapshots=tar.gz - - source-filter=${pkgs.cgit}/lib/cgit/filters/syntax-highlighting.py - about-filter=${pkgs.cgit}/lib/cgit/filters/about-formatting.sh - - enable-git-config=1 - enable-index-owner=0 - - remove-suffix=1 - - # sort repositories by section and branches by date - repository-sort=age - branch-sort=age - - readme=:README.md - readme=:README.org - readme=:readme.org - - # print the number of modified files - enable-log-filecount=1 - # print the number of modified lines - enable-log-linecount=1 - enable-follow-links=1 - enable-blame=1 - - root-title=¯\_(ツ)_/¯ - root-desc=source code of my various projects - # don't index or follow - robots="noindex, nofollow" - - project-list=/var/lib/gitolite/projects.list - scan-path=/var/lib/gitolite/repositories - ''; in { networking = { @@ -87,10 +39,37 @@ in ''; }; - services.fcgiwrap.instances = { + services.cgit.main = { enable = true; - user = "git"; - group = "git"; + nginx.virtualHost = "git.fcuny.net"; + scanPath = "/var/lib/gitolite/repositories"; + settings = { + css = "/cgit.css"; + logo = "/cgit.png"; + favicon = "/favicon.ico"; + readme = ":README.md"; + about-filter = "${pkgs.cgit-pink}/lib/cgit/filters/about-formatting.sh"; + source-filter = "${pkgs.cgit-pink}/lib/cgit/filters/syntax-highlighting.py"; + clone-url = (lib.concatStringsSep " " [ + "https://git.fcuny.net/$CGIT_REPO_URL" + ]); + enable-log-filecount = 1; + enable-log-linecount = 1; + enable-git-config = 1; + enable-blame = 1; + enable-commit-graph = 1; + enable-follow-links = 1; + enable-index-links = 1; + enable-remote-branches = 1; + enable-subject-links = 1; + enable-tree-linenumbers = 1; + max-atom-items = 108; + max-commit-count = 250; + max-repo-count = 500; + snapshots = "tar.xz"; + root-title = "¯\_(ツ)_/¯"; + root-desc = "source code of my various projects"; + }; }; services.nginx = { @@ -125,22 +104,9 @@ in "/.well-known/acme-challenge" = { root = "/var/lib/acme/acme-challenges"; }; - "~* ^.+.(css|png|ico)$" = { - root = "${pkgs.cgit}/cgit"; - }; # as per https://github.com/yandex/gixy/blob/master/docs/en/plugins/aliastraversal.md # if you want to map a single file make sure the location starts with a =, e.g =/i.gif instead of /i.gif. "=/robots.txt".alias = robots-deny; - "/".extraConfig = '' - include ${pkgs.nginx}/conf/fastcgi_params; - fastcgi_param CGIT_CONFIG ${pkgs.writeText "cgitrc" cgitrc}; - fastcgi_param SCRIPT_FILENAME ${pkgs.cgit}/cgit/cgit.cgi; - fastcgi_split_path_info ^(/?)(.+)$; - fastcgi_param PATH_INFO $fastcgi_path_info; - fastcgi_param HTTP_HOST $server_name; - fastcgi_param QUERY_STRING $args; - fastcgi_pass unix:${config.services.fcgiwrap.socketAddress}; - ''; }; }; }; -- cgit 1.4.1