diff --git a/nixos/modules/services/misc/gitweb.nix b/nixos/modules/services/misc/gitweb.nix index 8e4d85a1e15..b0e34a690ca 100644 --- a/nixos/modules/services/misc/gitweb.nix +++ b/nixos/modules/services/misc/gitweb.nix @@ -28,6 +28,7 @@ in example = '' $feature{'highlight'}{'default'} = [1]; $feature{'ctags'}{'default'} = [1]; + $feature{'avatar'}{'default'} = ['gravatar']; ''; }; diff --git a/nixos/modules/services/web-servers/nginx/gitweb.nix b/nixos/modules/services/web-servers/nginx/gitweb.nix index 344c1f7b8aa..3dc3ebc7e4c 100644 --- a/nixos/modules/services/web-servers/nginx/gitweb.nix +++ b/nixos/modules/services/web-servers/nginx/gitweb.nix @@ -22,36 +22,31 @@ in config = mkIf config.services.nginx.gitweb.enable { - systemd.sockets.gitweb = { - description = "GitWeb Listen Socket"; - listenStreams = [ "/run/gitweb.sock" ]; - socketConfig = { - Accept = "false"; - SocketUser = "nginx"; - SocketGroup = "nginx"; - SocketMode = "0600"; - }; - wantedBy = [ "sockets.target" ]; - }; systemd.services.gitweb = { description = "GitWeb service"; - script = "${git}/share/gitweb/gitweb.cgi --fcgi"; + script = "${pkgs.git}/share/gitweb/gitweb.cgi --fastcgi --nproc=1"; + environment = { + FCGI_SOCKET_PATH = "/run/gitweb/gitweb.sock"; + }; serviceConfig = { - Type = "simple"; - StandardInput = "socket"; User = "nginx"; Group = "nginx"; + RuntimeDirectory = [ "gitweb" ]; }; + wantedBy = [ "multi-user.target" ]; }; services.nginx = { virtualHosts.default = { - locations."/gitweb" = { - root = "${pkgs.git}/share/gitweb"; + locations."/gitweb/" = { + root = "${pkgs.git}/share"; + tryFiles = "$uri @gitweb"; + }; + locations."@gitweb" = { extraConfig = '' include ${pkgs.nginx}/conf/fastcgi_params; fastcgi_param GITWEB_CONFIG ${cfg.gitwebConfigFile}; - fastcgi_pass unix:/run/gitweb.sock; + fastcgi_pass unix:/run/gitweb/gitweb.sock; ''; }; };