{ lib, pkgs, config, myconfig, mylibs, ... }: let mantisbt = pkgs.callPackage ./mantisbt/mantisbt.nix { inherit (mylibs) fetchedGithub; env = myconfig.env.tools.mantisbt; }; gitweb = pkgs.callPackage ./gitweb/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; nixpkgs.config.packageOverrides = oldpkgs: rec { gitweb = oldpkgs.gitweb.overrideAttrs(old: { installPhase = old.installPhase + '' cp -r ${./gitweb/theme} $out/gitweb-theme; ''; }); }; 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; }; }; }