Module 8 · Lesson 17 of 25

Configuring two-node replication

Part of Dovecot: IMAP/POP3 at Production Scale — Replication & Multi-Master Setups.

On both nodes, in local.conf:

mail_plugins = $mail_plugins notify replication

service replicator {
  process_min_avail = 1
  unix_listener replicator-doveadm {
    mode = 0600
    user = vmail
  }
}

service aggregator {
  fifo_listener replication-notify-fifo {
    user = vmail
  }
  unix_listener replication-notify {
    user = vmail
  }
}

doveadm_password = "very-long-shared-secret"
doveadm_port = 12345

plugin {
  mail_replica = tcp:other-node.example.com:12345
}

Open port 12345 between the two hosts. Restart both. Trigger a full sync the first time:

doveadm replicator replicate -f '*'

Monitor:

doveadm replicator status '*'

Queued should drop to 0 quickly. Failed > 0 means look at /var/log/dovecot.log on both nodes.

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