diff options
Diffstat (limited to 'hosts')
| -rw-r--r-- | hosts/surtr/email/default.nix | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/hosts/surtr/email/default.nix b/hosts/surtr/email/default.nix index a6fbcaf3..f4543bf4 100644 --- a/hosts/surtr/email/default.nix +++ b/hosts/surtr/email/default.nix | |||
| @@ -137,11 +137,13 @@ in { | |||
| 137 | recipient_canonical_classes = ["envelope_recipient" "header_recipient"]; | 137 | recipient_canonical_classes = ["envelope_recipient" "header_recipient"]; |
| 138 | 138 | ||
| 139 | virtual_mailbox_domains = ''pgsql:${pkgs.writeText "virtual_mailbox_domains.cf" '' | 139 | virtual_mailbox_domains = ''pgsql:${pkgs.writeText "virtual_mailbox_domains.cf" '' |
| 140 | hosts = postgresql://localhost/emails | 140 | hosts = postgresql://localhost |
| 141 | dbname = emails | ||
| 141 | query = SELECT domain FROM virtual_mailbox_domain WHERE domain = '%s' | 142 | query = SELECT domain FROM virtual_mailbox_domain WHERE domain = '%s' |
| 142 | ''}''; | 143 | ''}''; |
| 143 | virtual_mailbox_maps = ''pgsql:${pkgs.writeText "virtual_mailbox_maps.cf" '' | 144 | virtual_mailbox_maps = ''pgsql:${pkgs.writeText "virtual_mailbox_maps.cf" '' |
| 144 | hosts = postgresql://localhost/emails | 145 | hosts = postgresql://localhost |
| 146 | dbname = emails | ||
| 145 | query = SELECT mailbox FROM virtual_mailbox_mapping WHERE mailbox = '%s' | 147 | query = SELECT mailbox FROM virtual_mailbox_mapping WHERE mailbox = '%s' |
| 146 | ''}''; | 148 | ''}''; |
| 147 | virtual_transport = "lmtp:unix:/run/postfix/dovecot-lmtp"; | 149 | virtual_transport = "lmtp:unix:/run/postfix/dovecot-lmtp"; |
| @@ -280,7 +282,14 @@ in { | |||
| 280 | mailLocation = "maildir:/var/lib/mail/%u/maildir:UTF-8"; | 282 | mailLocation = "maildir:/var/lib/mail/%u/maildir:UTF-8"; |
| 281 | modules = with pkgs; [ dovecot_pigeonhole ]; | 283 | modules = with pkgs; [ dovecot_pigeonhole ]; |
| 282 | protocols = [ "lmtp" "sieve" ]; | 284 | protocols = [ "lmtp" "sieve" ]; |
| 283 | extraConfig = '' | 285 | extraConfig = let |
| 286 | dovecotSqlConf = pkgs.writeText "dovecot-sql.conf" '' | ||
| 287 | driver = pgsql | ||
| 288 | connect = dbname=email | ||
| 289 | password_query = SELECT user, quota_rule FROM imap_user WHERE user = '%u' | ||
| 290 | user_query = SELECT user, quota_rule FROM imap_user WHERE user = '%u' | ||
| 291 | ''; | ||
| 292 | in '' | ||
| 284 | mail_home = /var/lib/mail/%u | 293 | mail_home = /var/lib/mail/%u |
| 285 | 294 | ||
| 286 | local_name imap.bouncy.email { | 295 | local_name imap.bouncy.email { |
| @@ -306,11 +315,12 @@ in { | |||
| 306 | 315 | ||
| 307 | userdb { | 316 | userdb { |
| 308 | driver = sql | 317 | driver = sql |
| 309 | args = ${pkgs.writeText "dovecot-sql.conf" '' | 318 | args = ${dovecotSqlConf} |
| 310 | driver = pgsql | 319 | default_fields = uid=dovecot2 gid=dovecot2 nopassword |
| 311 | connect = dbname=email | 320 | } |
| 312 | user_query = SELECT user, quota_rule FROM imap_user WHERE user = '%u' | 321 | passdb { |
| 313 | ''} | 322 | driver = sql |
| 323 | args = ${dovecotSqlConf} | ||
| 314 | default_fields = uid=dovecot2 gid=dovecot2 nopassword | 324 | default_fields = uid=dovecot2 gid=dovecot2 nopassword |
| 315 | } | 325 | } |
| 316 | 326 | ||
