]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - systems/eldiron/mail/sympa.nix
Squash changes containing private information
[perso/Immae/Config/Nix.git] / systems / eldiron / mail / sympa.nix
similarity index 84%
rename from modules/private/mail/sympa.nix
rename to systems/eldiron/mail/sympa.nix
index 0626ac0c4611f24f8cae211975eb5de5b8cefd87..8e801dd938a00c0d2f4d95023aa91762da2f5666 100644 (file)
@@ -5,13 +5,43 @@ let
 in
 {
   config = lib.mkIf config.myServices.mail.enable {
+    myServices.dns.zones."immae.eu".emailPolicies."lists".receive = true;
+    myServices.dns.zones."immae.eu".subdomains.lists =
+      with config.myServices.dns.helpers; lib.mkMerge [
+        (ips servers.eldiron.ips.main)
+        (mailCommon "immae.eu")
+        mailSend
+      ];
+
+    myServices.chatonsProperties.services.sympa = {
+      file.datetime = "2022-08-22T00:50:00";
+      service = {
+        name = "Sympa";
+        description = "Mailing lists service";
+        website = "https://mail.immae.eu/sympa";
+        logo = "https://mail.immae.eu/static-sympa/icons/favicon_sympa.png";
+        status.level = "OK";
+        status.description = "OK";
+        registration."" = ["MEMBER" "CLIENT"];
+        registration.load = "OPEN";
+        install.type = "PACKAGE";
+      };
+      software = {
+        name = "Sympa";
+        website = "https://www.sympa.org/";
+        license.url = "https://github.com/sympa-community/sympa/blob/sympa-6.2/COPYING";
+        license.name = "GNU General Public License v2.0";
+        version = pkgs.sympa.version;
+        source.url = "https://github.com/sympa-community/sympa/";
+      };
+    };
     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;
+          ip4 = config.myEnv.servers.backup-2.ips.main.ip4;
+          ip6 = map (v: "${v}/128") config.myEnv.servers.backup-2.ips.main.ip6;
         }
       ];
     };
@@ -105,9 +135,6 @@ in
         sympa_virtual = pkgs.writeText "virtual.sympa" ''
           sympa-request@${domain} postmaster@immae.eu
           sympa-owner@${domain}   postmaster@immae.eu
-
-          sympa-request@cip-ca.fr postmaster@immae.eu
-          sympa-owner@cip-ca.fr   postmaster@immae.eu
         '';
         sympa_transport = pkgs.writeText "transport.sympa" ''
           ${domain}                        error:User unknown in recipient table
@@ -115,11 +142,6 @@ in
           listmaster@${domain}             sympa:listmaster@${domain}
           bounce@${domain}                 sympabounce:sympa@${domain}
           abuse-feedback-report@${domain}  sympabounce:sympa@${domain}
-
-          sympa@cip-ca.fr                  sympa:sympa@cip-ca.fr
-          listmaster@cip-ca.fr             sympa:listmaster@cip-ca.fr
-          bounce@cip-ca.fr                 sympabounce:sympa@cip-ca.fr
-          abuse-feedback-report@cip-ca.fr  sympabounce:sympa@cip-ca.fr
         '';
       };
       config = {
@@ -172,10 +194,6 @@ in
           webHost = "mail.immae.eu";
           webLocation = "/sympa";
         };
-        "cip-ca.fr" = {
-          webHost = "mail.cip-ca.fr";
-          webLocation = "/sympa";
-        };
       };
 
       database = {
@@ -191,6 +209,7 @@ in
         log_smtp = "on";
         sendmail_aliases = "/var/lib/sympa/sympa_transport";
         aliases_program = "${pkgs.postfix}/bin/postmap";
+        create_list = "listmaster";
       };
       settingsFile = {
         "virtual.sympa".enable = false;