Module 10 · Lesson 21 of 25

Director configuration

Part of Dovecot: IMAP/POP3 at Production Scale — Director, Proxying & Horizontal Scaling.

conf.d/10-director.conf:

service director {
  unix_listener login/director {
    mode = 0666
  }
  inet_listener {
    port = 9090
  }
}

director_servers = node1.example.com node2.example.com node3.example.com
director_mail_servers = backend1 backend2 backend3
director_user_expire = 15 min
director_username_hash = %u

Tell IMAP/POP3 login to use it:

service imap-login {
  executable = imap-login director
}
service pop3-login {
  executable = pop3-login director
}

Operations:

doveadm director status              # Cluster view
doveadm director map                 # Active user → backend mappings
doveadm director move alice@e.com backend2   # Force a user to a specific backend

Failover: if a backend disappears, director redirects users to the next healthy one in the hash ring. After 15 minutes of idle (director_user_expire), users can be remapped if the cluster has rebalanced.

Sign in to keep track of what you have read.

Pulse · self-hosted sending

Own the infrastructure your pipeline depends on.

One install script on your own server. Pulse sets up the MTA, mailboxes, certificates and dashboard; you add domains and start sending.

# on a fresh Ubuntu server
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$

Also from us:Beat — monitoring that tells you the fixConsulting — $65/hr, no retainer