Dovecot - Postfix Calender Synchronisation

Robert Wolf r.wolf.conf at gmail.com
Fri Aug 25 15:15:04 EEST 2017


On Thu, 24 Aug 2017, Rupert Gallagher wrote:


> Re: dependencies
> 
> - db: why? just use the ical and vcard files! They are files, they are in a 
>   directory, they can be used like dovecot uses eml files! No need for 
>   postgresql or mysql.

*** Usually, the DB server is one host, Webclient is other host, IMAP server 
(or cluster) are other hosts, SMTP Server(-s) is other host. All these Servers 
need access same data on one place. Yes, you can use IMAP to store contacts and 
events, as e.g. Kerio, Groupwise, and probably some other do and then write 
some interface server to convert data from IMAP to HTTP. But many vcard and 
vcal servers store the data in DB (AFAIK SOGo.nu stores these in DB).

Btw, dovecot can use SOLR/Lucene for indexing too. Dovecot does use local index 
files too, but probably if you have really many emails, then you want really 
indexing server (which can run on different hardware).


Why? Because of searching. DB creates indexes and can search fast. Maybe for 
100 items is searching on FS and in DB same fast, but with more and more items, 
FS will be slower.

You know probably, how the vcard and vcal looks like (if not, please see one). 
This is a text. Everything is text. Even dates are text. You cannot search in 
these files e.g. "if event starts after 2017/8/25". You have to read every 
file, parse the dates and then can you compare.

If you convert these vcal into DB, into correct fields, you can search faster 
the in FS. And the searching does not mean only if use want find something. The 
server must search for alarms, to do free/busy search, etc.

> - webmail: why? We use dovecot!!!

*** Webmail is client, dovecot is server. Do you have only dovecot? No client? 
Then why do you need dovecot at all, if none reads the emails?

No, really, you need some client. Webmail is easy to use, Webbrowser is 
everywhere. I use alpine, but for BFU is webmail the best.



OK, let's say the client for contacts and events could be thunderbird.

Calender is intergrated in TB and it does use HTTP. E.g. even if the calender 
items are stored in Kerio in a maildir-like folder invisible over IMAP, the 
communication between TB client and Kerio servers runs over HTTP for vcal.

SOGO AddOn for contacts for Thunderbird use HTTP too (it works even with Kerio).

All these clients and server for ical and contacts use caldav and carddav (DAV 
over HTTP). Nobody writes server (or client), that use IMAP, because these is 
no client (or server) which synchronize vcal or vcard over IMAP.

> - apache web: why? we use nginx.

*** This should not matter, if you know, how to configure nginx to provide same 
functionality as apache. You can use your favourite webserver, as long as it 
supports the requirements of the app. E.g. if the vcard/vcal application is 
written in PHP, then the webserver must be able to run PHP.

> - linux: why? we use other unix systems.

*** because the programmers develop it on linux and have tested it on linux. 
For most things, you can use other unix too. Sometimes, it is possible to run 
it even on Windows, e.g. apache, nginx, php, perl, mysql, ... these run on 
Windows too.

> - python: why? it takes 140MB all by itself, 

*** It must be written in some prg lang. Someone can C, then he writes it in C 
- but then, the same libraries must be installed or the developer must compile
for every different system with different libraries. Python, Perl, PHP and
other interpreted languages are compiled on the fly on the currently running
system. Developer can simply pack original source code and this will run on
every platform. Therefore, many people use interpreted langs to let their
apps run on many platform without many special "IFs" and without compiling
for X different platforms.

> it is an interpreter (slow)

*** I would not expect really big speed difference between good written python 
code and C code for some vcard/vcal server.

> it is a security hazard

*** I would say, there could be more security errors (buffer overflow etc) in C 
code, than in python code.

> we would have to install it on purpose and sanbox it in a virtual machine! So 
> we have to install a vm manager.

*** As I say, the most secure server is switched off server and disconnected
from LAN and power.

You have to choose between security, functionality and complexity. Either you
provide only smtp+imap server or you want provide more features (webclient,
vcal/vcard, ...) and then you need more software.

For a few users could be no problem to have really some small/light server,
which stores all data as files on local disk. But I think the programmers of
such vcard/vcal servers think about to be able handle big number of users and
big amount of data. Therefore they expect some real DB.

More feature == more requirements.


Regards,

Robert Wolf.


More information about the dovecot mailing list