Hello List,
I am proud to announce my project "wormhole". This is an extension for Dovecot 2.4.1.
It allows to continue the use of the replication feature of Dovecot that was removed
with the 2.4 release.
History:
I started this project by forking the replication code of Dovecot 2.3.21.1 and
porting it to 2.4. The first result was a patch for Dovecot 2.4.1.
While working with the code, I realized that it is possible to provide the feature as
a plugin / extension. In the first release of the plugin, I tried to integrate it
with the existing dsync commands for doveadm. This required an API for access to the
dsync commands, which I proposed to the Dovecot developers in
https://github.com/dovecot/core/pull/249 . Unfortunately, my pull request was
rejected, though I can understand the reasons for that.
Without the required API, I had to switch to another approach: I forked the dsync
code from doveadm to provide a new set of commands: "repl" and "repl-server". These
commands work similar to "sync" and "dsync-server" but use additional functions
required by the replication feature. This approach was released as version 0.3 of the
plugin.
With version 0.4 I renamed the project to wormhole. Before that it was just called
dovecot-replication (see https://codeberg.org/errror/dovecot-replication). I thought
that the project should have a more unique name.
Currently I'm working on designing a test suite for wormhole. Doing unit tests of the
components is not sufficient IMHO. The test suite should check the whole replication
feature using two running dovecot instances that replicate the users' mailboxes.
Having a sophisticated test suite will help in future development and bug tracking.
The code can be found on my codeberg site at:
https://codeberg.org/errror/wormhole
There is also a web page on my personal homepage at:
https://people.mpi-klsb.mpg.de/~pcernko/wormhole.shtml
The project is still missing documentation. For the moment, configuration is similar
to the existing Dovecot 2.3 documentation.
Upgrading from 2.3:
When using the included patch for Dovecot, the plugin should be 100% compatible with
existing Dovecot 2.3 servers. This compatibility should allow uninterrupted upgrades
of the service by replacing Dovecot on one server and then the other one. After the
upgrade, the plugin can be reconfigured to work without the patch for Dovecot.
Upgrading without the patch is also possible. During the upgrade (aka "while one
server still runs 2.3") some aspects of the replication will not work or lack
performance.
Upgrading is not yet tested very well and missing documentation also. I will work on
that soon.
I hope to get some feedback, pull requests or bug reports via mail or at codeberg
(preferred).
--
Patrick Cernko <[email protected]> +49 681 9325 5815
Joint Scientific IT and Technical Service
Max-Planck-Institute für Informatik & Softwaresysteme
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]