Dovecot CalDAV server
I've been once in a while over the years thinking about implementing CalDAV (and CardDAV) to Dovecot. It might be time to start that soon. Does anyone have any suggestions? So far my main goals would be:
- scalable, of course
- configurable storage (object storage, regular fs, maybe some key-value dbs, maybe storing as emails)
- efficient indexes (potentially using key-value dbs? or maybe just local files. not sure yet what kind of indexing is needed)
- have it work with dsync (= replication & migration)
Some things I wonder about:
- Maybe there is already some code out there that could be used to implement it faster?
- Maybe even use something else besides C to implement it.. Then again that makes integration to Dovecot more difficult.
- Is anybody interested in helping to develop this? :) I think I still have too much other work that I won't spend a lot of time coding it..
One thing that makes this easier is that Open-Xchange has already implemented a CalDAV server, so they can help to avoid the biggest design mistakes. (There are a couple of reasons why they'd want to replace that.)
- Timo Sirainen <dovecot@dovecot.org>:
Well CalDAV/CardDAV is just another protocol you put in front of your storage engine, right? (Besides the tweaks it will take…)
Have you had a look at http://radicale.org/? I haven't used it myself, but heard good things about it.
p@rick
-- [*] sys4 AG
https://sys4.de, +49 (89) 30 90 46 64 Franziskanerstraße 15, 81669 München
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein
On Fri, 11 Sep 2015 00:04:29 +0200 Patrick Ben Koetter <p@sys4.de> wrote:
Have you had a look at http://radicale.org/? I haven't used it myself, but heard good things about it.
Thanks for sharing. This really looks interesting.
--
Niklaas
On 09/10/2015 11:43 PM, Timo Sirainen wrote:
- Maybe there is already some code out there that could be used to implement it faster?
As I know Cyrus IMAP has this feature, but I didn't try it nor see the code. -- Aleksander 'A.L.E.C' Machniak Kolab Groupware Developer [http://kolab.org] Roundcube Webmail Developer [http://roundcube.net] --------------------------------------------------- PGP: 19359DC1 @@ GG: 2275252 @@ WWW: http://alec.pl
On Fri, 11 Sep 2015 00:43:16 +0300 Timo Sirainen <tss@iki.fi> wrote:
Have you heard about SOGo yet?
It is an entire groupware server but its focus lies on scalability implemented through open standards. For an overview check
http://www.sogo.nu/english/about/technology.html
I haven't used it myself yet but I am planning to do so.
--
Niklaas
- Niklaas Baudet von Gersdorff <niklaas@kulturflatrate.net>:
SOGo is good groupware. It is rock solid and runs stable. But it won't scale for what Timo is after. At least that's what I was told a while ago.
p@rick
-- [*] sys4 AG
https://sys4.de, +49 (89) 30 90 46 64 Franziskanerstraße 15, 81669 München
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein
Am Freitag, 11. September 2015, 12:26:25 schrieb Patrick Ben Koetter:
Scaling is done with loadbalancers nowadays. Network-based or application- based. Both work depending which one is better in which situation.
Mit freundlichen Grüßen,
Michael Schwartzkopff
-- [*] sys4 AG
http://sys4.de, +49 (89) 30 90 46 64, +49 (162) 165 0044 Franziskanerstraße 15, 81669 München
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein
Am 10.09.2015 um 23:43 schrieb Timo Sirainen:
Hi Timo, caldav / carddav in dovecot will be an ultimate nice feature.
I remember Kolab with imap file storage backend, storing vcard, ics in imap folders. ( which should be hidden )
There was a thunderbird plugin for this, but i had no good performance. Advantage of this solution might be the exist imap acl system can be used for all kind of addressbook , kalendar sharing. Perhaps public addressbooks and calendars are possible too this way ( and at last anonymous read only ones ).
All other servers i know use some db backend. I guess you will have hard times with clients, cause there are all kind of known bugs.
Specially serial appointment with/and different timezones over summertime and wintertime changes seems difficult to code. Best way all in UTC and let the client convert it in its local timezone.
Also there are two ways of invitations notices via mail , let the client send it, or the server has to do it ( or perhaps combinate ).
So resources calenders are needed too ,for auto booking calenders you need some kind of scripting. For the first releases mark as higly beta , its very bad for user if they trust in calenders which might have bugs.
the new thunderbird carddav addressbook seems to stuck since years
https://github.com/mikeconley/thunderbird-ensemble
Of course i am willing to test your code and report.
Best Regards MfG Robert Schetterer
-- [*] sys4 AG
http://sys4.de, +49 (89) 30 90 46 64 Franziskanerstraße 15, 81669 München
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein
On Friday 11 September 2015 17:55:12 Robert Schetterer wrote:
In fact with metadata support (which is now mainstream in dovecot) you can store arbitrary data in imap. The folder is simply marked as: addressbook, calendar or whatever you want . I think there is nothing more to implement in dovecot (well, is enough place for improuvement) ;
Thunderbird is stagnant; I think we don't have an IMAP client dovecot deserve :) But IMHO all the rest ( storing, parsing) should be implemented client side via plugins.
All other servers i know use some db backend. I guess you will have hard times with clients, cause there are all kind of known bugs.
Best Regards MfG Robert Schetterer--
Mihai Badici[1]
On Fri, 11 Sep 2015 00:43:16 +0300 Timo Sirainen <tss@iki.fi> wrote:
I've been once in a while over the years thinking about implementing CalDAV (and CardDAV) to Dovecot. It might be time to start that soon. Does anyone have any suggestions?
Perhaps support for LDAP as a backend for retrieving contact information (CardDAV) and/or a way to sync the contacts between Dovecot and LDAP in some sane way. This could end-up being more trouble than worth, though.
Best regards
-- Branko Majic Jabber: branko@majic.rs Please use only Free formats when sending attachments to me.
Бранко Мајић Џабер: branko@majic.rs Молим вас да додатке шаљете искључиво у слободним форматима.
On Friday 11 September 2015 00:43:16 Timo Sirainen wrote:
The kolab project already store calendars and cards as e-mails. I use dovecot from few years using part of this project. They use libkolabxml who provide binding for encoding/decoding objects ; this is an approach with advandages and disadvantages ( an external library can be upgraded to reflect changes in object format) but i think compatibility is a good thing at the end. Maybe this could be pluggable to allow different xml formats, but I think all should be more or less similar.
implement
One thing that makes this easier is that Open-Xchange has already implemented a CalDAV server, so they can help to avoid the biggest
design
-- Mihai Badici[1]
participants (11)
-
A.L.E.C
-
Admin
-
Branko Majic
-
Jerry
-
Michael Schwartzkopff
-
Mihai Badici
-
Niklaas Baudet von Gersdorff
-
Patrick Ben Koetter
-
Robert Schetterer
-
Tim Dickson
-
Timo Sirainen