This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

2configs/mailserver: fix virtual Unread mailbox

Move virtual mailbox config from nix store (read-only) to
/var/vmail/virtual-config via systemd.tmpfiles, fixing ACL plugin
errors. Exclude notmuch and fts-flatcurve from virtual search.

+43 -31
+43 -31
2configs/mailserver.nix
··· 187 187 "virtual" 188 188 "acl" 189 189 ]; 190 - services.dovecot2.extraConfig = 191 - let 192 - virtualDir = pkgs.linkFarm "dovecot-virtual" [ 193 - { 194 - name = "Unread/dovecot-virtual"; 195 - path = pkgs.writeText "dovecot-virtual-unread" "*\n unseen\n"; 196 - } 197 - ]; 198 - in 199 - '' 200 - plugin { 201 - acl = vfile 202 - acl_shared_dict = file:/var/vmail/shared-mailboxes.db 203 - } 190 + # Provision virtual mailbox config to a writable directory (nix store is read-only, 191 + # and the ACL plugin needs to write dovecot-acl-list next to the virtual config) 192 + systemd.tmpfiles.settings."dovecot-virtual" = { 193 + "/var/vmail/virtual-config".d = { 194 + user = "virtualMail"; 195 + group = "virtualMail"; 196 + mode = "0750"; 197 + }; 198 + "/var/vmail/virtual-config/Unread".d = { 199 + user = "virtualMail"; 200 + group = "virtualMail"; 201 + mode = "0750"; 202 + }; 203 + "/var/vmail/virtual-config/Unread/dovecot-virtual".f = { 204 + user = "virtualMail"; 205 + group = "virtualMail"; 206 + mode = "0640"; 207 + argument = "*\n-notmuch\n-fts-flatcurve\n unseen\n"; 208 + }; 209 + }; 204 210 205 - namespace shared { 206 - type = shared 207 - separator = . 208 - prefix = shared.%%n. 209 - location = maildir:/var/vmail/lassul.us/%%n/mail:LAYOUT=Maildir++ 210 - subscriptions = no 211 - list = children 212 - } 211 + services.dovecot2.extraConfig = '' 212 + plugin { 213 + acl = vfile 214 + acl_shared_dict = file:/var/vmail/shared-mailboxes.db 215 + } 213 216 214 - namespace virtual { 215 - prefix = virtual. 216 - separator = . 217 - location = virtual:${virtualDir}:INDEX=/var/vmail/virtual-indexes/%u 218 - subscriptions = no 219 - mailbox Unread { 220 - auto = subscribe 221 - } 217 + namespace shared { 218 + type = shared 219 + separator = . 220 + prefix = shared.%%n. 221 + location = maildir:/var/vmail/lassul.us/%%n/mail:LAYOUT=Maildir++ 222 + subscriptions = no 223 + list = children 224 + } 225 + 226 + namespace virtual { 227 + prefix = virtual. 228 + separator = . 229 + location = virtual:/var/vmail/virtual-config:INDEX=/var/vmail/virtual-indexes/%u 230 + subscriptions = no 231 + mailbox Unread { 232 + auto = subscribe 222 233 } 223 - ''; 234 + } 235 + ''; 224 236 225 237 # Write dovecot-acl files to grant bot read-only + flag access to lass's mail 226 238 systemd.services.dovecot-acl-sync = {