{ lib, pkgs, config, ... }: let mantisbt = pkgs.callPackage ./mantisbt.nix { inherit (pkgs.webapps) mantisbt_2 mantisbt_2-plugins; env = config.myEnv.tools.mantisbt; inherit config; }; gitweb = pkgs.callPackage ./gitweb.nix { gitoliteDir = config.myServices.gitolite.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.env.tools.modules = gitweb.apache.modules ++ mantisbt.apache.modules; services.websites.webappDirs."${gitweb.apache.webappName}" = gitweb.webRoot; services.websites.webappDirs."${mantisbt.apache.webappName}" = mantisbt.webRoot; system.activationScripts.mantisbt = mantisbt.activationScript; services.websites.env.tools.vhostConfs.git = { certName = "eldiron"; addToCerts = true; hosts = ["git.immae.eu" ]; root = gitweb.apache.root; extraConfig = [ gitweb.apache.vhostConf (mantisbt.apache.vhostConf config.services.phpfpm.pools.mantisbt.socket) '' RewriteEngine on RewriteCond %{REQUEST_URI} ^/releases RewriteRule /releases(.*) https://release.immae.eu$1 [P,L] '' ]; }; services.phpfpm.pools = { mantisbt = { user = config.services.httpd.Tools.user; group = config.services.httpd.Tools.group; settings = mantisbt.phpFpm.pool; phpPackage = pkgs.php72; }; }; }; }