aboutsummaryrefslogtreecommitdiff
path: root/nix/hosts/wildcat/configuration.nix
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-09-21 11:22:25 -0700
committerFranck Cuny <franck@fcuny.net>2024-09-21 11:22:25 -0700
commit36713da57deaa6fe8a4bd6d7d9592e511ccbca76 (patch)
treeb6f6747a6b726041154e03076daa7d39a6bf7ace /nix/hosts/wildcat/configuration.nix
parentI think this is the correct configuration (diff)
downloadinfra-36713da57deaa6fe8a4bd6d7d9592e511ccbca76.tar.gz
try to configure using the cgit module
Diffstat (limited to 'nix/hosts/wildcat/configuration.nix')
-rw-r--r--nix/hosts/wildcat/configuration.nix96
1 files changed, 31 insertions, 65 deletions
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};
- '';
};
};
};