summary refs log tree commit diff stats
path: root/modules/git/cgit.nix
blob: 900f3505125bfc8932a2a2356e7c0f4b2f84409a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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" ];

}