summary refs log tree commit diff stats
path: root/modules/git/cgit.nix
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-04-07 23:22:48 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-04-07 23:22:48 +0200
commit96d0c89447d00e7cee5d26b5cb1e08f01deae768 (patch)
tree73c2e9a68fde5f58dcccd59fb401c65fffe58ff3 /modules/git/cgit.nix
parent5a29376b43d2aaf3757a0b9be0ddcb97b1d57cf6 (diff)
downloadnosix-96d0c89447d00e7cee5d26b5cb1e08f01deae768.tar.gz
nosix-96d0c89447d00e7cee5d26b5cb1e08f01deae768.zip
add a barebones git server with cgit-ping as a web frontend
The serves works as a mirror for my github account, a shell script
resyncs the mirror every day
Diffstat (limited to 'modules/git/cgit.nix')
-rw-r--r--modules/git/cgit.nix62
1 files changed, 62 insertions, 0 deletions
diff --git a/modules/git/cgit.nix b/modules/git/cgit.nix
new file mode 100644
index 0000000..900f350
--- /dev/null
+++ b/modules/git/cgit.nix
@@ -0,0 +1,62 @@
+{ config, pkgs, lib , ... }:
+{
+
+  services.cgit.git = {
+    enable = true;
+    package = pkgs.cgit-pink;
+    user = "git";
+    group = "git";
+    scanPath = "/null";
+
+    extraConfig = ''
+      root-title=git.krinitsin
+      root-desc=github mirror
+      footer=
+      logo=
+      css=/cur-cgit.css
+
+      clone-url=git@krinitsin.com:$CGIT_REPO_URL
+      snapshots=tar.gz zip
+
+      cache-size=1000
+
+      enable-index-owner=0
+      enable-http-clone=0
+      enable-blame=1
+      enable-commit-graph=1
+
+
+      enable-log-filecount=1
+      enable-log-linecount=1
+      branch-sort=age
+
+      max-stats=quarter
+
+      source-filter=${pkgs.cgit}/lib/cgit/filters/syntax-highlighting.py
+      about-filter=${pkgs.cgit}/lib/cgit/filters/about-formatting.sh
+
+      readme=:README.md
+      readme=:readme.md
+
+      enable-follow-links=1
+      enable-git-config=1
+      remove-suffix=1
+
+      scan-path=/var/lib/git-server
+    '';
+
+    nginx = {
+      virtualHost = "git.krinitsin.com";
+      location = "/";
+    };
+  };
+
+  services.nginx.virtualHosts."git.krinitsin.com" = {
+    forceSSL = true;
+    useACMEHost = "krinitsin.com";
+    locations."= /cur-cgit.css".alias = /var/www/cur-cgit.css;
+  };
+
+  security.acme.certs."krinitsin.com".extraDomainNames = [ "git.krinitsin.com" ];
+
+}