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.