]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Add sympa mailing lists to MX backup
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 5 May 2020 22:18:28 +0000 (00:18 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 5 May 2020 22:18:28 +0000 (00:18 +0200)
modules/private/mail/relay.nix
modules/private/mail/sympa.nix
overlays/postfix/default.nix

index ae74112bb2cc92cd2df50ba4768a92b992562c04..52288fc1b13a73a45d69932433de130af2eca2b4 100644 (file)
             LIMIT 1
         '';
       }
+      {
+        dest = "postfix/sympa_mailbox_maps";
+        user = config.services.postfix.user;
+        group = config.services.postfix.group;
+        permissions = "0440";
+        text = ''
+          hosts = ${config.myEnv.mail.sympa.postgresql.host}
+          user = ${config.myEnv.mail.sympa.postgresql.user}
+          password = ${config.myEnv.mail.sympa.postgresql.password}
+          dbname = ${config.myEnv.mail.sympa.postgresql.database}
+          query = SELECT DISTINCT CONCAT(name_list, '@', robot_list) FROM list_table
+        '';
+      }
       {
         dest = "postfix/ldap_ejabberd_users_immae_fr";
         user = config.services.postfix.user;
       paths = [
         config.secrets.fullPaths."postfix/mysql_alias_maps"
         config.secrets.fullPaths."postfix/mysql_mailbox_maps"
+        config.secrets.fullPaths."postfix/sympa_mailbox_maps"
         config.secrets.fullPaths."postfix/ldap_ejabberd_users_immae_fr"
       ];
     };
           virtual_mailbox_maps = [
             "hash:/etc/postfix/host_dummy_mailboxes"
             "mysql:${config.secrets.fullPaths."postfix/mysql_mailbox_maps"}"
+            "pgsql:${config.secrets.fullPaths."postfix/sympa_mailbox_maps"}"
           ];
         in
           backup_recipients ++ virtual_alias_maps ++ virtual_mailbox_maps;
index ed7e5989d2ba6142012fa7a386f2857863e5dda7..1a696d036029d40942d41f0e84d0fef782606aea 100644 (file)
@@ -5,6 +5,16 @@ let
 in
 {
   config = lib.mkIf config.myServices.mail.enable {
+    myServices.databases.postgresql.authorizedHosts = {
+      backup-2 = [
+        {
+          username = "sympa";
+          database = "sympa";
+          ip4 = [config.myEnv.servers.backup-2.ips.main.ip4];
+          ip6 = config.myEnv.servers.backup-2.ips.main.ip6;
+        }
+      ];
+    };
     services.duplyBackup.profiles.sympa = {
       rootDir = "/var/lib/sympa";
     };
index 55b83128c765a8c48a8ffa796f442e81ac0f6ab4..c77e4cfe2b7444076dd33e61d1ca9bdb3891134c 100644 (file)
@@ -1,3 +1,3 @@
 self: super: {
-  postfix = super.postfix.override { withMySQL = true; };
+  postfix = super.postfix.override { withMySQL = true; withPgSQL = true; };
 }