]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/environment.nix
Use ldap instead of mysql to fetch mailboxes
[perso/Immae/Config/Nix.git] / modules / private / environment.nix
index 77e9c8d6d9725a6866833e01abed14da276b4df7..5d74ab555aff23f1e8f70f8922760ca775ee2844 100644 (file)
@@ -650,6 +650,7 @@ in
                   user_attrs = mkOption { type = str; description = "User attribute mapping in LDAP"; };
                   iterate_attrs = mkOption { type = str; description = "User attribute mapping for listing in LDAP"; };
                   iterate_filter = mkOption { type = str; description = "User attribute filter for listing in LDAP"; };
+                  postfix_mailbox_filter = mkOption { type = str; description = "Postfix filter to get mailboxes"; };
                 };
               };
             };
@@ -698,6 +699,28 @@ in
               };
             });
           };
+          sympa = mkOption {
+            description = "Sympa configuration";
+            type = submodule {
+              options = {
+                listmasters = mkOption {
+                  type = listOf str;
+                  description = "Listmasters";
+                };
+                postgresql = mkPsqlOptions "Sympa";
+                data_sources = mkOption {
+                  type = attrsOf str;
+                  default = {};
+                  description = "Data sources to make available to sympa";
+                };
+                scenari = mkOption {
+                  type = attrsOf str;
+                  default = {};
+                  description = "Scenari to make available to sympa";
+                };
+              };
+            };
+          };
         };
       };
     };
@@ -799,6 +822,7 @@ in
       description = "Tools configurations";
       type = submodule {
         options = {
+          contact = mkOption { type = str; description = "Contact e-mail address"; };
           davical = mkOption {
             description = "Davical configuration";
             type = submodule {
@@ -819,6 +843,15 @@ in
               };
             };
           };
+          dmarc_reports = mkOption {
+            description = "DMARC reports configuration";
+            type = submodule {
+              options = {
+                mysql = mkMysqlOptions "DMARC" {};
+                anonymous_key = mkOption { type = str; description = "Anonymous hashing key"; };
+              };
+            };
+          };
           etherpad-lite = mkOption {
             description = "Etherpad configuration";
             type = submodule {
@@ -827,6 +860,7 @@ in
                 ldap = mkLdapOptions "Etherpad" {
                   group_filter = mkOption { type = str; description = "Filter for groups"; };
                 };
+                adminPassword = mkOption { type = str; description = "Admin password for mypads / admin"; };
                 session_key = mkOption { type = str; description = "Session key"; };
                 api_key = mkOption { type = str; description = "API key"; };
                 redirects = mkOption { type = str; description = "Redirects for apache"; };
@@ -917,6 +951,16 @@ in
               };
             };
           };
+          syden_peertube = mkOption {
+            description = "Peertube Syden configuration";
+            type = submodule {
+              options = {
+                listenPort = mkOption { type = port; description = "Port to listen to"; };
+                postgresql = mkPsqlOptions "Peertube";
+                redis = mkRedisOptions "Peertube";
+              };
+            };
+          };
           phpldapadmin = mkOption {
             description = "phpLdapAdmin configuration";
             type = submodule {
@@ -1002,6 +1046,10 @@ in
               };
             };
           };
+          webhooks = mkOption {
+            type = attrsOf str;
+            description = "Mapping 'name'.php => script for webhooks";
+          };
           ympd = mkOption {
             description = "Ympd configuration";
             type = submodule {
@@ -1037,6 +1085,23 @@ in
       description = "Websites configurations";
       type = submodule {
         options = {
+          immae = mkOption {
+            description = "Immae configuration by environment";
+            type = submodule {
+              options = {
+                temp = mkOption {
+                  description = "Temp configuration";
+                  type = submodule {
+                    options = {
+                      ldap = mkLdapOptions "Immae temp" {
+                        filter = mkOption { type = str; description = "Filter for user access"; };
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          };
           isabelle = mkOption {
             description = "Isabelle configurations by environment";
             type =
@@ -1123,7 +1188,7 @@ in
               };
             };
           };
-          telioTortay = mkOption {
+          telio_tortay = mkOption {
             description = "Telio Tortay configuration";
             type = submodule {
               options = {
@@ -1131,7 +1196,7 @@ in
               };
             };
           };
-          ludivinecassal = mkOption {
+          ludivine = mkOption {
             description = "Ludivinecassal configurations by environment";
             type =
               let