{ lib, pkgs, config, myconfig, ... }: let ludivinecassal = pkgs.callPackage ./builder.nix { inherit (pkgs.webapps) ludivinecassal; config = myconfig.env.websites.ludivinecassal.production; apacheUser = config.services.httpd.Prod.user; apacheGroup = config.services.httpd.Prod.group; }; cfg = config.myServices.websites.ludivinecassal.production; in { options.myServices.websites.ludivinecassal.production.enable = lib.mkEnableOption "enable Ludivine's website in production"; config = lib.mkIf cfg.enable { secrets.keys = ludivinecassal.keys; services.webstats.sites = [ { name = "ludivinecassal.com"; } ]; services.myPhpfpm.preStart.ludivinecassal_prod = ludivinecassal.phpFpm.preStart; services.myPhpfpm.serviceDependencies.ludivinecassal_prod = ludivinecassal.phpFpm.serviceDeps; services.myPhpfpm.poolConfigs.ludivinecassal_prod = ludivinecassal.phpFpm.pool; system.activationScripts.ludivinecassal_prod = ludivinecassal.activationScript; system.extraSystemBuilderCmds = '' mkdir -p $out/webapps ln -s ${ludivinecassal.app.webRoot} $out/webapps/${ludivinecassal.apache.webappName} ''; services.websites.production.modules = ludivinecassal.apache.modules; services.websites.production.vhostConfs.ludivine = { certName = "ludivinecassal"; certMainHost = "ludivinecassal.com"; hosts = ["ludivinecassal.com" "www.ludivinecassal.com" ]; root = ludivinecassal.apache.root; extraConfig = [ ludivinecassal.apache.vhostConf ]; }; }; }