• # Ma solution

    Posté par . En réponse au message Cherche groupware : Synchronisation calendrier/contacts sur android, roundcube, outlook. Évalué à 7.

    Au fil du temps, j’ai mis en place chez moi une solution relativement tordue mais qui fonctionne enfin avec tous les différents clients que j’utilise.

    En gros, ça donne ça :

    Les contacts sont stockés dans un annuaire LDAP avec un schéma personnalisé (basé sur inetOrgPerson). L’avantage de LDAP est que la plupart des clients de messagerie le supporte (au minimum en lecture) — la seule exception que je connaisse est le client mail fourni avec Maemo sur mon N900.

    L’agenda est stocké dans une base SQL (PostgreSQL chez moi, mais MySQL voire même sqlite feraient également l’affaire).

    Ensuite, le cœur de ma solution repose sur Horde Groupware, qui va chercher les contacts dans la base LDAP et les calendriers dans la base SQL et met les données à disposition des clients par plusieurs moyens :

    • des protocoles basés sur WebDAV (CardDAV, CalDAV, GroupDAV), utilisables généralement par des logiciels comme Kontact (KDE), Evolution (GNOME), Mozilla Thunderbird/Sunbird ;
    • le protocole SyncML, que j’utilise notamment pour la synchronisation avec mon N900 ;
    • en derniers recours, une interface web.

    La figure suivante tente de résumer le schmilblick.

     .-----------. .-------------. .---------------.
     | Dovecot | | OpenLDAP | | PostgreSQL |
     | | | |-----------------+ | |
     | Mails | | Contacts | | | Calendars |
     `-----------' `-------------' | `---------------'
     | | | |
     | | .--+-----------+--.
     | | | Apache/Horde |
     | | `-----------------'
     | | / | \
     | | / | \
     IMAP LDAP Web UI WebDAV SyncML
     | | / | \
     | | / | \
     .---+------------------+---. .------+--. .-------+-------. .--+------------.
     | Mail client/PIM software | | Browser | | PIM software | | SyncML client |
     `--------------------------' `---------' `---------------' `---------------'
    

    Si ça ressemble à une usine à gaz, c’est probablement parce que c’en est une. Mais elle fonctionne, alors je n’envisage pas vraiment d’essayer de la simplifier.