summaryrefslogtreecommitdiff
path: root/config/cgit.nix
blob: 4f36e6ab81565617eb280eba58c646aea437dc4e (plain)
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
{ config, lib, pkgs, ... }:
let
  fcgiPort = (import ../data/aliases.nix).services.fcgi.port;
  gitPort = (import ../data/aliases.nix).services.git.port;
  gitPath = "/storage/projects/";
  configFile = pkgs.writeText "cgitrc" ''
    scan-path=${gitPath}
  '';
in
{
  imports = [ ./fcgiwrap.nix ];

  networking.firewall.allowedTCPPorts = [ gitPort ];

  services.nginx = {
    enable = true;
    virtualHosts = {
      "git.orbekk.com" = {
        root = "${pkgs.cgit}/cgit";
        extraConfig = "try_files $uri @cgit;";
        locations."@cgit" = {
          extraConfig = ''
            include "${pkgs.nginx}/conf/fastcgi_params";
            fastcgi_param CGIT_CONFIG "${configFile}";
            fastcgi_param SCRIPT_FILENAME "${pkgs.cgit}/cgit/cgit.cgi";
            fastcgi_param PATH_INFO       $uri;
            fastcgi_param QUERY_STRING    $args;
            fastcgi_param HTTP_HOST       $server_name;
            fastcgi_pass  localhost:${toString fcgiPort};
          '';
        };
      };
    };
  };
}