{ lib, pkgs, config, myconfig, mylibs, ... }: let mantisbt = pkgs.callPackage ./mantisbt.nix { inherit (mylibs) fetchedGithub; 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.services.myWebsites.tools.git; in { options.services.myWebsites.tools.git = { enable = lib.mkEnableOption "enable git's website"; }; config = lib.mkIf cfg.enable { security.acme.certs."eldiron".extraDomains."git.immae.eu" = null; secrets.keys = mantisbt.keys; services.myWebsites.tools.modules = gitweb.apache.modules ++ mantisbt.apache.modules; system.extraSystemBuilderCmds = '' mkdir -p $out/webapps ln -s ${gitweb.webRoot} $out/webapps/${gitweb.apache.webappName} ln -s ${mantisbt.webRoot} $out/webapps/${mantisbt.apache.webappName} ''; services.myWebsites.tools.vhostConfs.git = { certName = "eldiron"; 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.myPhpfpm.poolConfigs = { mantisbt = mantisbt.phpFpm.pool; }; }; }