]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/tools/git/default.nix
Move websites/tools to modules
[perso/Immae/Config/Nix.git] / modules / private / websites / tools / git / default.nix
diff --git a/modules/private/websites/tools/git/default.nix b/modules/private/websites/tools/git/default.nix
new file mode 100644 (file)
index 0000000..3e8b605
--- /dev/null
@@ -0,0 +1,43 @@
+{ lib, pkgs, config, myconfig, ... }:
+let
+    mantisbt = pkgs.callPackage ./mantisbt.nix {
+      inherit (pkgs.webapps) mantisbt_2 mantisbt_2-plugins;
+      env = myconfig.env.tools.mantisbt;
+    };
+    gitweb = pkgs.callPackage ./gitweb.nix { gitoliteDir = config.services.myGitolite.gitoliteDir; };
+
+    cfg = config.myServices.websites.tools.git;
+in {
+  options.myServices.websites.tools.git = {
+    enable = lib.mkEnableOption "enable git's website";
+  };
+
+  config = lib.mkIf cfg.enable {
+    secrets.keys = mantisbt.keys;
+    services.websites.tools.modules =
+      gitweb.apache.modules ++
+      mantisbt.apache.modules;
+    myServices.websites.webappDirs."${gitweb.apache.webappName}" = gitweb.webRoot;
+    myServices.websites.webappDirs."${mantisbt.apache.webappName}" = mantisbt.webRoot;
+
+    system.activationScripts.mantisbt = mantisbt.activationScript;
+    services.websites.tools.vhostConfs.git = {
+      certName    = "eldiron";
+      addToCerts  = true;
+      hosts       = ["git.immae.eu" ];
+      root        = gitweb.apache.root;
+      extraConfig = [
+        gitweb.apache.vhostConf
+        mantisbt.apache.vhostConf
+        ''
+          RewriteEngine on
+          RewriteCond %{REQUEST_URI}       ^/releases
+          RewriteRule /releases(.*)        https://release.immae.eu$1 [P,L]
+          ''
+      ];
+    };
+    services.phpfpm.poolConfigs = {
+      mantisbt = mantisbt.phpFpm.pool;
+    };
+  };
+}