]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/tools/mail/default.nix
Upgrade to latest nixos
[perso/Immae/Config/Nix.git] / modules / private / websites / tools / mail / default.nix
index 35711af355a5796a87d7da39c3afc5b317fcbe7d..7d7904fdd057efa4e77b395094c143b5f683966e 100644 (file)
@@ -1,11 +1,14 @@
-{ lib, pkgs, config, myconfig,  ... }:
+{ lib, pkgs, config,  ... }:
 let
   roundcubemail = pkgs.callPackage ./roundcubemail.nix {
     inherit (pkgs.webapps) roundcubemail roundcubemail-plugins roundcubemail-skins;
-    env = myconfig.env.tools.roundcubemail;
+    env = config.myEnv.tools.roundcubemail;
+  };
+  rainloop = pkgs.callPackage ./rainloop.nix {
+    rainloop = pkgs.rainloop-community;
   };
-  rainloop = pkgs.callPackage ./rainloop.nix {};
   cfg = config.myServices.websites.tools.email;
+  pcfg = config.services.phpfpm.pools;
 in
 {
   options.myServices.websites.tools.email = {
@@ -17,7 +20,7 @@ in
   ];
 
   config = lib.mkIf cfg.enable {
-    services.backup.profiles.mail.excludeFile = ''
+    services.duplyBackup.profiles.mail.excludeFile = ''
       + ${rainloop.varDir}
       + ${roundcubemail.varDir}
       '';
@@ -34,8 +37,8 @@ in
       hosts      = ["mail.immae.eu"];
       root       = "/run/current-system/webapps/_mail";
       extraConfig = [
-        rainloop.apache.vhostConf
-        roundcubemail.apache.vhostConf
+        (rainloop.apache.vhostConf pcfg.rainloop.socket)
+        (roundcubemail.apache.vhostConf pcfg.roundcubemail.socket)
         ''
           <Directory /run/current-system/webapps/_mail>
             Require all granted
@@ -56,19 +59,26 @@ in
     };
 
     services.phpfpm.pools.roundcubemail = {
-      listen = roundcubemail.phpFpm.socket;
-      extraConfig = roundcubemail.phpFpm.pool;
-      phpOptions = config.services.phpfpm.phpOptions + roundcubemail.phpFpm.phpConfig;
+      user = "wwwrun";
+      group = "wwwrun";
+      settings = roundcubemail.phpFpm.pool;
+      phpOptions = config.services.phpfpm.phpOptions + ''
+        date.timezone = 'CET'
+      '';
+      phpPackage = pkgs.php72.withExtensions(e: pkgs.php72.enabledExtensions ++ [ e.imagick ]);
     };
-    services.phpfpm.poolConfigs = {
-      rainloop = rainloop.phpFpm.pool;
+    services.phpfpm.pools.rainloop = {
+      user = "wwwrun";
+      group = "wwwrun";
+      settings = rainloop.phpFpm.pool;
+      phpPackage = pkgs.php72;
     };
     system.activationScripts = {
       roundcubemail = roundcubemail.activationScript;
       rainloop = rainloop.activationScript;
     };
 
-    myServices.websites.webappDirs = {
+    services.websites.webappDirs = {
       _mail = ./www;
       "${roundcubemail.apache.webappName}" = roundcubemail.webRoot;
       "${rainloop.apache.webappName}" = rainloop.webRoot;