Hi Gerald,

Thank you for the details. As per your suggestion, I have made the changes to dovecot.conf file. Still I don't see any replication is happening. Please see the dovecot.conf file.

I do not see "/etc/dovecot/conf.d/12-replication.conf" in my servers. So I had put everything  in the dovecot.conf file only. Please see the complete data in it below. The below data is in server A. In other server (server B) Also I have the same configuration, except mail_replica line and it is pointing to the other server like, " mail_replica = remote:vmail@bal3200dev001.testorg.com ". 

I have generated/configured the ssh keys also for vmail user in both servers. Now When i manually ssh to the server, it is not asking for a password. 

=====================
=====================
disable_plaintext_auth = no

listen = *
log_path = /var/log/dovecot.log
#mail_location = maildir:/z1nfs/mail/virtual/%d/%n/Maildir/
mail_location = maildir:/z1devenv/mail/virtual/%d/%n/Maildir/
passdb {
        args = /etc/dovecot/passwd
        driver = passwd-file
        }

pop3_uidl_format = %g
protocols = pop3 imap

#ssl = yes
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
#ssl_key = </etc/pki/dovecot/private/dovecot.pem

userdb {
#        args = uid=vmail gid=vmail home=/z1nfs/mail/virtual/%d/%n
        args = uid=vmail gid=vmail home=/z1devenv/mail/virtual/%d/%n
        driver = static
        }

mail_debug = yes
verbose_ssl = no


# Enable the replication plugin globally
mail_plugins = $mail_plugins notify replication

service replicator {
  process_min_avail = 1
}

dsync_remote_cmd = ssh -l%{login} %{host} doveadm dsync-server -u%u
plugin {
  mail_replica = remote:vmail@bal3200dev002.testorg.com
}

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

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

replication_max_conns = 10
=====================
=====================

Am i missing anything here? Please guide me.

Thanks,
Kishore Potnuru



On Fri, Jul 17, 2020 at 12:36 AM Gerald Galster <list+dovecot@gcore.biz> wrote:

I have done the sync manually with "doveadm sync" command. But, I have not configured the replication yet.

If you don't tell dovecot where to replicate, nothing gets replicated.

I am looking at the below webpage for the replication. 


I am using the dovecot version  "2.2.36". I am confused with what needs to be done after reading that page.

1. They are talking about v2.3.1 and v2.2+. Which one do I need to follow? Could you please give me more details on this? Providing some sample settings will be more helpful for me, please. 

I don't understand your confusion. You are using 2.2.36, which is v2.2+ (meaning a version greater than 2.2).
The documentation states you need at least 2.3.1 if you want to use the noreplicate feature.
So you can't use that with 2.2.36, but as your goal is to replicate everything you don't need "noreplicate".
Besides that I can't see any difference in configuring replication for 2.2/2.3.

If you want to replicate emails with ssh you just have to follow the first section, the sample settings are
right on that page. It's basically copying everything from "mail_plugins = $mail_plugins notify replication"
to "replication_max_conns = 10" into a config file like /etc/dovecot/conf.d/12-replication.conf

You only have to change the following line to match your server/ssh setup:
mail_replica = remote:vmail@anotherhost.example.com

Then generate and configure ssh keys for user vmail (passwordless authentication) on both servers.

2. Also, do I need to set the replication on both of my servers the same and as it is?

On server A) you should configure mail_replica = remote:vmail@server_B and
on server B) you should configure mail_replica = remote:vmail@server_A

If you skip B) and new mail arrives on B) it is not immediately synced to A)
In that case you would have to wait until a mail gets synced from A)
(you remember sync is bidirectional)

Best regards
Gerald