dovecot: add mailQuota
authorJulien Moutinho <julm@sourcephile.fr>
Mon, 25 Jan 2021 01:35:45 +0000 (02:35 +0100)
committerJulien Moutinho <julm@sourcephile.fr>
Mon, 25 Jan 2021 01:35:45 +0000 (02:35 +0100)
machines/mermet/dovecot/ldap.conf
machines/mermet/openldap/autogeree.net.nix
machines/mermet/openldap/posixAccount.nix
machines/mermet/openldap/schema/postfix-book.ldif
machines/mermet/openldap/sourcephile.fr.nix
machines/mermet/redis.nix

index 82a58a6052fa0fea1bfba51f08e4fdb3337316f1..1dea192c753f79771541f3146311d22e22e3b84f 100644 (file)
@@ -38,7 +38,7 @@ user_attrs = uidNumber=uid,\
              mailHomeDirectory=home,\
              mailStorageDirectory=mail,\
              mailGroupMember=mail_access_groups,\
-             quotaBytes=quota_rule=*:bytes=%{ldap:quotaBytes}
+             mailQuota=quota_rule=*:bytes=%{ldap:mailQuota}
 
 # doveadm user query
 iterate_attrs = =user=%{ldap:uid}@%d
index 1a382ae87718c6afc43cbdb7832666cd018d7d33..f1800414deaab51407d2d1324708acd6386d9a7f 100644 (file)
@@ -120,6 +120,7 @@ services.openldap = {
         mailAlias = [ "julien.moutinho" ];
         userPassword = builtins.readFile (inputs.secrets + "/members/mail/julm/hashedPassword");
         mailHomeDirectory = "/home/${uid}/mail/${domain}";
+        mailQuota = "1G";
         mailStorageDirectory =
           let stateDir = "/var/lib/dovecot"; in
           # I'm personnaly using "maildir:" instead of "sdbox:" to be able to use a local (neo)mutt on it,
index da16cdc932e9abdbf26ba24e417fc5fb72517f9a..b620327d850889cce18291540a3a7f66ead4860c 100644 (file)
@@ -16,6 +16,7 @@ in
 , mailEnabled ? true
 , mailForwardingAddress ? []
 , mailGroupMember ? domainGroup
+, mailQuota ? null
 }:
  "\n" + lib.concatStringsSep "\n\n" [
  (unlines ([ ''
@@ -38,6 +39,7 @@ in
   ++ lib.optional (userPassword != null) "userPassword: ${userPassword}"
   ++ lib.optional (mailHomeDirectory != null) "mailHomeDirectory: ${mailHomeDirectory}"
   ++ lib.optional (mailStorageDirectory != null) "mailStorageDirectory: ${mailStorageDirectory}"
+  ++ lib.optional (mailQuota != null) "mailQuota: ${mailQuota}"
   ++ map (forward: "mailForwardingAddress: ${forward}") mailForwardingAddress
   ++ map (alias: "mailAlias: ${alias}@${domain}") mailAlias
   ++ lib.optional (mailAlias == []) "mailAlias:"
index d61c582e7616af05bd3684b429444c0677bdf368..4b6a727715bdbe14fb872a030c891411b330c524 100644 (file)
@@ -38,7 +38,7 @@ olcAttributeTypes: ( 1.3.6.1.4.1.29426.1.10.6
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
 olcAttributeTypes: ( 1.3.6.1.4.1.29426.1.10.7
   NAME 'mailQuota'
-  DESC 'Mail quota limit in kilobytes'
+  DESC 'Mail quota limit in bytes'
   EQUALITY caseExactIA5Match
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
 olcAttributeTypes: ( 1.3.6.1.4.1.29426.1.10.8
index 32faf4700bf9da1940c708c34eb870e9aa77b095..450a950283531b5c52978ff83dbafd744715a198 100644 (file)
@@ -120,6 +120,7 @@ services.openldap = {
         mailAlias = [ "julien.moutinho" ];
         userPassword = builtins.readFile (inputs.secrets + "/members/mail/julm/hashedPassword");
         mailHomeDirectory = "/home/${uid}/mail/${domain}";
+        mailQuota = "512M";
         mailStorageDirectory =
           let stateDir = "/var/lib/dovecot"; in
           # I'm personnaly using "maildir:" instead of "sdbox:" to be able to use a local (neo)mutt on it,
index 84e4ecdec0d66928f1b17e948510268f6d29c283..3c1e98cde8a5c569b029d9bb78139888e1544241 100644 (file)
@@ -8,13 +8,13 @@ services.redis = {
   unixSocket = "/run/redis/redis.socket";
   databases = 16;
   syslog = true;
-  extraConfig = ''
-    bind 127.0.0.1 ::1
-    unixsocketperm 660
-    maxclients 1024
-    maxmemory 500mb
-    maxmemory-policy volatile-ttl
-  '';
+  bind = "127.0.0.1 ::1";
+  settings = {
+    unixsocketperm = "660";
+    maxclients = 1024;
+    maxmemory = "500mb";
+    maxmemory-policy = "volatile-ttl";
+  };
 };
 
 users.users.redis.group = "redis";