diff options
author | Wout Mertens <Wout.Mertens@gmail.com> | 2018-03-30 00:18:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-30 00:18:44 +0200 |
commit | b4e92e0b34e72ed467fe4ed4fa1c5a1dfa3c89b7 (patch) | |
tree | 07b6bb800228a789fe4bbc76d293c57707a0c2e8 /nixos/modules/services/web-servers | |
parent | 299eb877a72ab73eabe2d0c0e6992122d5a13b59 (diff) | |
parent | 05b535c850d1361e18ecd58ba81a8537bf31041b (diff) | |
download | nixlib-b4e92e0b34e72ed467fe4ed4fa1c5a1dfa3c89b7.tar nixlib-b4e92e0b34e72ed467fe4ed4fa1c5a1dfa3c89b7.tar.gz nixlib-b4e92e0b34e72ed467fe4ed4fa1c5a1dfa3c89b7.tar.bz2 nixlib-b4e92e0b34e72ed467fe4ed4fa1c5a1dfa3c89b7.tar.lz nixlib-b4e92e0b34e72ed467fe4ed4fa1c5a1dfa3c89b7.tar.xz nixlib-b4e92e0b34e72ed467fe4ed4fa1c5a1dfa3c89b7.tar.zst nixlib-b4e92e0b34e72ed467fe4ed4fa1c5a1dfa3c89b7.zip |
Merge pull request #37921 from gnidorah/gitweb
nixos/nginx: add gitweb sub-service
Diffstat (limited to 'nixos/modules/services/web-servers')
-rw-r--r-- | nixos/modules/services/web-servers/lighttpd/gitweb.nix | 28 | ||||
-rw-r--r-- | nixos/modules/services/web-servers/nginx/gitweb.nix | 64 |
2 files changed, 67 insertions, 25 deletions
diff --git a/nixos/modules/services/web-servers/lighttpd/gitweb.nix b/nixos/modules/services/web-servers/lighttpd/gitweb.nix index c8d9836b0b68..37128d90401d 100644 --- a/nixos/modules/services/web-servers/lighttpd/gitweb.nix +++ b/nixos/modules/services/web-servers/lighttpd/gitweb.nix @@ -3,12 +3,7 @@ with lib; let - cfg = config.services.lighttpd.gitweb; - gitwebConfigFile = pkgs.writeText "gitweb.conf" '' - # path to git projects (<project>.git) - $projectroot = "${cfg.projectroot}"; - ${cfg.extraConfig} - ''; + cfg = config.services.gitweb; in { @@ -23,26 +18,9 @@ in ''; }; - projectroot = mkOption { - default = "/srv/git"; - type = types.path; - description = '' - Path to git projects (bare repositories) that should be served by - gitweb. Must not end with a slash. - ''; - }; - - extraConfig = mkOption { - default = ""; - type = types.lines; - description = '' - Verbatim configuration text appended to the generated gitweb.conf file. - ''; - }; - }; - config = mkIf cfg.enable { + config = mkIf config.services.lighttpd.gitweb.enable { # declare module dependencies services.lighttpd.enableModules = [ "mod_cgi" "mod_redirect" "mod_alias" "mod_setenv" ]; @@ -60,7 +38,7 @@ in "/gitweb/" => "${pkgs.git}/share/gitweb/gitweb.cgi" ) setenv.add-environment = ( - "GITWEB_CONFIG" => "${gitwebConfigFile}", + "GITWEB_CONFIG" => "${cfg.gitwebConfigFile}", "HOME" => "${cfg.projectroot}" ) } diff --git a/nixos/modules/services/web-servers/nginx/gitweb.nix b/nixos/modules/services/web-servers/nginx/gitweb.nix new file mode 100644 index 000000000000..344c1f7b8aa4 --- /dev/null +++ b/nixos/modules/services/web-servers/nginx/gitweb.nix @@ -0,0 +1,64 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.gitweb; + +in +{ + + options.services.nginx.gitweb = { + + enable = mkOption { + default = false; + type = types.bool; + description = '' + If true, enable gitweb in nginx. Access it at http://yourserver/gitweb + ''; + }; + + }; + + 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"; + serviceConfig = { + Type = "simple"; + StandardInput = "socket"; + User = "nginx"; + Group = "nginx"; + }; + }; + + services.nginx = { + virtualHosts.default = { + locations."/gitweb" = { + root = "${pkgs.git}/share/gitweb"; + extraConfig = '' + include ${pkgs.nginx}/conf/fastcgi_params; + fastcgi_param GITWEB_CONFIG ${cfg.gitwebConfigFile}; + fastcgi_pass unix:/run/gitweb.sock; + ''; + }; + }; + }; + + }; + + meta.maintainers = with maintainers; [ gnidorah ]; + +} |