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.