X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=nixops%2Fmodules%2Fwebsites%2Fchloe%2Fdefault.nix;h=8e801b59b2d918d3357919ec9ff96163fe42c145;hb=4aac110f17f0528d90510eec00c9a8df60bcf04f;hp=94cd4be5e7e0b99fadf03b93bbb0ccce5ac48cee;hpb=01f21083a897b86bf148f1d2bb9c8edca4d3786a;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/nixops/modules/websites/chloe/default.nix b/nixops/modules/websites/chloe/default.nix index 94cd4be..8e801b5 100644 --- a/nixops/modules/websites/chloe/default.nix +++ b/nixops/modules/websites/chloe/default.nix @@ -1,14 +1,15 @@ -{ lib, pkgs, config, myconfig, mylibs, ... }: +{ lib, pkgs, config, myconfig, ... }: let - chloe = pkgs.callPackage ./chloe.nix { inherit (mylibs) fetchedGitPrivate; }; - chloe_dev = chloe { - config = myconfig.env.websites.chloe.integration; - }; - chloe_prod = chloe { - config = myconfig.env.websites.chloe.production; - }; + chloe_dev = pkgs.callPackage ./chloe.nix { + inherit (pkgs.webapps) chloe; + config = myconfig.env.websites.chloe.integration; + }; + chloe_prod = pkgs.callPackage ./chloe.nix { + inherit (pkgs.webapps) chloe; + config = myconfig.env.websites.chloe.production; + }; - cfg = config.services.myWebsites.Chloe; + cfg = config.services.myWebsites.Chloe; in { options.services.myWebsites.Chloe = { production = { @@ -19,52 +20,48 @@ in { }; }; - imports = [ - ../commons/stats.nix - ]; - config = lib.mkMerge [ (lib.mkIf cfg.production.enable { - services.myWebsites.commons.stats.enable = true; - services.myWebsites.commons.stats.sites = [ - { - name = "osteopathe-cc.fr"; - conf = ./goaccess.conf; - } - ]; - - security.acme.certs."chloe" = config.services.myCertificates.certConfig // { - domain = "osteopathe-cc.fr"; - extraDomains = { - "www.osteopathe-cc.fr" = null; - }; - }; + secrets.keys = chloe_prod.keys; + services.webstats.sites = [ { name = "osteopathe-cc.fr"; } ]; + services.myPhpfpm.serviceDependencies.chloe_prod = chloe_prod.phpFpm.serviceDeps; services.myPhpfpm.poolConfigs.chloe_prod = chloe_prod.phpFpm.pool; services.myPhpfpm.poolPhpConfigs.chloe_prod = '' extension=${pkgs.php}/lib/php/extensions/mysqli.so ''; system.activationScripts.chloe_prod = chloe_prod.activationScript; - services.myWebsites.production.modules = chloe_prod.apache.modules; - services.myWebsites.production.vhostConfs.chloe = { - certName = "chloe"; - hosts = ["osteopathe-cc.fr" "www.osteopathe-cc.fr" ]; - root = chloe_prod.webRoot; - extraConfig = [ chloe_prod.apache.vhostConf ]; + system.extraSystemBuilderCmds = '' + mkdir -p $out/webapps + ln -s ${chloe_prod.app.webRoot} $out/webapps/${chloe_prod.apache.webappName} + ''; + services.websites.production.modules = chloe_prod.apache.modules; + services.websites.production.vhostConfs.chloe = { + certName = "chloe"; + certMainHost = "osteopathe-cc.fr"; + hosts = ["osteopathe-cc.fr" "www.osteopathe-cc.fr" ]; + root = chloe_prod.apache.root; + extraConfig = [ chloe_prod.apache.vhostConf ]; }; }) (lib.mkIf cfg.integration.enable { - security.acme.certs."eldiron".extraDomains."chloe.immae.eu" = null; + secrets.keys = chloe_dev.keys; + services.myPhpfpm.serviceDependencies.chloe_dev = chloe_dev.phpFpm.serviceDeps; services.myPhpfpm.poolConfigs.chloe_dev = chloe_dev.phpFpm.pool; services.myPhpfpm.poolPhpConfigs.chloe_dev = '' extension=${pkgs.php}/lib/php/extensions/mysqli.so ''; system.activationScripts.chloe_dev = chloe_dev.activationScript; - services.myWebsites.integration.modules = chloe_dev.apache.modules; - services.myWebsites.integration.vhostConfs.chloe = { + system.extraSystemBuilderCmds = '' + mkdir -p $out/webapps + ln -s ${chloe_dev.app.webRoot} $out/webapps/${chloe_dev.apache.webappName} + ''; + services.websites.integration.modules = chloe_dev.apache.modules; + services.websites.integration.vhostConfs.chloe = { certName = "eldiron"; + addToCerts = true; hosts = ["chloe.immae.eu" ]; - root = chloe_dev.webRoot; + root = chloe_dev.apache.root; extraConfig = [ chloe_dev.apache.vhostConf ]; }; })