Forum général.cherche-logiciel Cherche groupware : Synchronisation calendrier/contacts sur android, roundcube, outlook

Posté par .
Tags : aucun
4
13
juil.
2011

Bonjour,

Je suis a la recherche d'une solution pour synchroniser mes contacts/calendriers un peu partout.

J'ai :
- un serveur sous Debian
- Un webmail roundcube sur ce meme serveur
- des utilisateurs (pas beaucoup, hein, c'est des besoins perso), sous thunderbird, outlook, android

Pour l'instant, j'ai trouvé 3 solutions :
1) CalDAV/CardDAV, et l'implementation de choix semble etre (pour le sereur) DAViCal
Avantages :
- roundcube est en passe d'etre supporté, via des plugins
- TB a l'air d'etre supporté
- android aussi, mais je ne sais pas a quel point (j'ai au moins trouvé 2 apks, mais il va falloir tester)
Inconvenients :
- Utilise PostGreSQL, alors que j'ai déjà un MySQL qui tourne

2) SyncML, en utilisant un serveur Funambol
Avantages :
- Ca a l'air de "juste marcher", puisqu'ils controlent toute la chaine
- Android a l'air bien supporté
Inconvenients:
- Justement, je ne sais pas comment ca marche...
- pas de support de roundcube

3) Kolab : stocke tout dans des dossiers IMAP speciaux
- Ca me plaisais beaucoup, parceque c'est simple et que je sais où sont mes données, mais pas de clients roundcube ni android

Pour l'instant, je me dirige vers DAViCal, mais j'aimerais bien vos avis sur 2 points :
1. pensez-vous que ces solutions sont (un minimum) perennes ? (notemment, Kolab, j'ai pas l'impression qu'il y ait beaucoup d'activité)
2. Je n'ai pas reussi à avoir des infos sur la facon dont sont stockées les données sur DAViCal et funambol. Tout en BDD ? Je suis nul en *SQL, et j'avoue que la perspective de ne plus pouvoir "sortir" les données dans un format standard (iCal/vCard) me fait un peu peur, en cas de crash/non fonctionnement du serveur.

Voila, et si vous avez d'autres trucs a me conseiller, je suis preneur !

  • # Ma solution

    Posté par (page perso) . É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.

    • [^] # Re: Ma solution

      Posté par . Évalué à 2.

      Merci pour cet exemple. Si j'ai bien compris, tu utilise surtout Horde, avec un "backend" couriers/contacts/calendriers à ta sauce.

      J'avais exclus Horde d'office, car j'en avais compris que c'etait une distrib complete, comme Zimbra, mais je vais y re-jeter un coup d'oeil. (et puis je n'aime pas trop leur client web, donc je comptais pas rajouter des trucs pour rien).
      Tu dis qu'il gere a la fois CalDAV et SyncML ? (auquel cas, yabon, parcequ'on trouve souvent l'un ou l'autre, en plus d'activesync)
      Et la BDD, tu l'as faite tout seul, ou c'est mis en place par Horde ? Quid de l'export vers un fichier iCal ?

      (oui, je pose beaucoup de questions, mais j'en profite un peu, je trouve rien sur leur site)

      • [^] # Re: Ma solution

        Posté par (page perso) . Évalué à 3.

        Si j'ai bien compris, tu utilise surtout Horde, avec un "backend" couriers/contacts/calendriers à ta sauce.

        Oui. Un des avantages que j’ai trouvé à Horde est sa flexibilité au niveau des « backends ». Par exemple, mon carnet d’adresse était déjà stocké dans une base LDAP avant que je ne m’intéresse à Horde, et j’ai apprécié que Horde soit capable d’utiliser directement la base LDAP en question : ça m’a évité une migration de mon carnet d’adresse vers un autre backend, et je peux toujours accéder au carnet d’adresse en LDAP avec les clients qui le supportent.

        je n'aime pas trop leur client web

        Apparemment il a bénéficié d’une remise à neuf dans la dernière branche 4.x, que je n’ai pas encore essayé. Mais c’est vrai que le client web de la branche précédente 1.x laisse un peu à désirer, tant au niveau de l’esthétique que de l’ergonomie (en même temps, je suis difficile en la matière, je n’ai jamais trouvé une interface web ergonomique…).

        Tu dis qu'il gere a la fois CalDAV et SyncML ?

        Oui. Enfin, pour CalDAV, je ne suis pas sûr qu’il s’agisse réellement de Cal DAV, il y a beaucoup de confusion autour des protocoles basés sur WebDAV, et j’ai du mal à m’y retrouver. Ce que je peux dire, c’est que ça fonctionne avec Mozilla Sunbird 0.9 et Evolution 2.32. Ça fonctionne probablement aussi avec Kontact de KDE, mais je n’ai pas testé.

        SyncML est effectivement supporté sans qu’il ne soit nécessaire d’ajouter un outil supplémentaire. Un gros point positif pour moi, parce que je n’avais vraiment pas envie d’ajouter un serveur Funambol dans mon installation déjà bien chargée. Je l’utilise quotidiennement pour la synchronisation des contacts et du calendrier avec mon N900 (via SyncEvolution, disponible dans les dépôts de Maemo).

        Et la BDD, tu l'as faite tout seul, ou c'est mis en place par Horde ?

        C’est mis en place par Horde. Plus exactement, Horde fournit des schémas de base de données pour les différents SGBD, je n’ai eu qu’à charger le script SQL correspondant.

        Je pense que je te vois venir, et je dois malheureusement confirmer : cela signifie effectivement que la base de données stockant les calendriers est propre à Horde, et n’est exploitable qu’au travers de celui-ci (contrairement au backend LDAP pour les contacts, par exemple). Moi aussi je trouve ça dommage, mais je n’ai pas mieux à proposer.

        Quid de l'export vers un fichier iCal ?

        Ce doit être possible depuis l’interface web, mais je n’ai jamais essayé. J’ai testé en revanche directement avec un client WebDAV (cadaver), ça fonctionne sans problèmes.

        (oui, je pose beaucoup de questions, mais j'en profite un peu, je trouve rien sur leur site)

        La documentation n’est pas abondante, en effet. Pas de problème pour les questions. :)

        • [^] # Re: Ma solution

          Posté par . Évalué à 1.

          Ok, ca me plais bien, je vais sans doute essayer. En plus il y a un package Debian \o/.
          Et je ferais des backups avec cadaver, pourquoi pas (je viens de regarder le man, je sens que ca va pas forcement etre aussi simple que de le dire).

          Plus qu'à me mettre à LDAP, que j'avais farouchement évité depuis un certain temps. Mais tant qu'a essayer d'utiliser des standards, autant aller jusqu'au bout.
          En tout cas, merci !

          • [^] # Re: Ma solution

            Posté par (page perso) . Évalué à 4.

            Et je ferais des backups avec cadaver, pourquoi pas (je viens de regarder le man, je sens que ca va pas forcement etre aussi simple que de le dire).

            En fait, si on veut juste récupérer l’intégralité du calendrier (tous les rendez-vous passés et à venir), cadaver n’est même pas utile, un simple wget suffit :

            $ wget --http-user <username> --http-passwd <password> http://<hostname>/horde/rpc.php/kronolith/<username>/<username>.ics
            

            Ça ne marche pas pour les contacts, en revanche (normalement, ça devrait, mais ça ne marche pas :( ). Mais les contacts peuvent être exportés en interrogeant directement le serveur LDAP, sans passer par Horde :

            $ ldapsearch -x -D <user DN> -w <password> -H ldap://<hostname> -b <search base> "(objectClass=*)"
            

            Par ailleurs, une autre façon de sauvegarder les données consiste à utiliser les fonctionnalités dédiés du backend (pg_dump ou mysqldump pour les calendriers, slapcat pour les contacts).

  • # Tine 2.0 !

    Posté par . Évalué à 8.

    Salut à toi,

    J'ai longtemps cherché la même chose que toi. Mon choix s'était arrêté sur Zarafa pendant un moment (c'était le seul qui offrait une synchro Activesync sans être une usine à gaz genre Zimbra ou Kolab avec des trucs genre Funambol), mais il avait plusieurs défauts qui me gênaient :
    - serveur IMAP spécifique (quid de la sécurité ?)
    - stockage dans une BDD (pas bon pour mon rsnapshot)
    - impossible d'exporter le carnet d'adresse (fallait passer par Outlook)
    - pas de liens avec Thunderbird (à part une vague extension payante...)

    Puis un beau jour j'ai fini par tomber sur Tine 2.0

    Tine, ça veut dire "Tine is not Egroupware". Bah oui, c'est en gros la nouvelle version d'eGroupware, réécrite à partir de 0.

    C'est donc un groupware PHP avec des jolies interfaces AJAX et tout, qui en plus propose la synchro Activesync, parfait pour Android et iPhone donc. Ça vient au dessus de n'importe quels serveurs (pas besoin de distribs ou serveurs spécifiques, pour ma part Apache, Mysql, Postfix et Dovecot sur une Ubuntu Server), et on peut exporter facilement les contacts dans plein de formats (vCard est sur la wish list, mais pas encore supporté, tout comme iCal d'ailleurs). En plus y'a une très bonne extension Thunderbird gratuite et supportée (synchros des contacts uniquement).

    Y'a même une interface openID !!!

    Et un file manager en cours de développement (bientôt un genre de Dropbox ?) et pas mal d'autres applications que perso je n'utilise pas.

    Bon, niveau défauts :
    - je préférerais que les contacts soient stockés soit dans ma base LDAP soit sous forme de vCard
    - idem pour le calendrier

    Autrement... pour ma part je vois pas, il répond 100% à mes besoins. C'est codé clairement (même moi qui suis pas un programmeur, juste quelques notions de PHP, j'ai réussi à proposer quelques patchs).

    Je sais pas comment il scale par contre. Moi je l'utilise pour mon usage perso (je fais un git pull par jour), dans un contexte avec plein d'utilisateurs je sais pas.

    Je trouve étonnant qu'il soit aussi méconnu, en fait. Pour un groupware de cette qualité, et face à des usines à gaz comme Kolab ou Zimbra...

    J'aimerais bien lui donner un peu plus de visibilité, l'idéal serait d'en faire un paquet deb et le mettre dans un repo. J'y connais rien mais je vais regarder ça :)

    • [^] # Re: Tine 2.0 !

      Posté par . Évalué à -4.

      Pourquoi je suis évalué à -1 ? :(

    • [^] # Re: Tine 2.0 !

      Posté par . Évalué à 1.

      Ah, ca m'a l'air pas mal. Effectivement, la gestion d'activesync est un gros plus. Merci, je vais y jeter un coup d'oeil.

      Ca fait combien de temps que tu l'utilises ? Parce que pour le coup, j'ai un peu peur pour la perenité. Et il a en gros le meme reproche que celui que je fait aux autres, a savoir l'utilisation d'une BDD (qui, pour des besoins perso, est un peu inutile)

      • [^] # Re: Tine 2.0 !

        Posté par . Évalué à 1.

        Je l'utilise depuis août 2010 (de mémoire). Niveau pérennité... je sais pas trop, disons que c'est une solution qu'ils vendent (en tant que service quoi, ça reste de l'open source). En tout cas c'est très actif, et y'a une petite communauté relativement dynamique.

        C'est aussi pour ça que je voudrais lui donner un peu de visibilité, histoire de fédérer plus de monde autour.

        Je me serais bien passé de la BDD mais, vu le fonctionnement (c'est une surcouche PHP qui fait le lien avec les autres serveurs) pour moi ça reste acceptable. Au moins mes mails sont gérés en Maildir par Dovecot.

        Peut être que si quelqu'un programme une interface sqlite (si c'est possible ?) ? Je m'y connais pas assez.

      • [^] # Re: Tine 2.0 !

        Posté par (page perso) . Évalué à 3.

        la gestion d'activesync est un gros plus

        Je n'y connais rien: activesync permet de connecter de l'Outlook ? Email + contacts + agendas partagés ?

        • [^] # Re: Tine 2.0 !

          Posté par . Évalué à 2.

          Oui, du moins, c'est ce que j'en ai compris.
          Et c'est visiblement beaucoup plus répandu (coté client) que les 3 protocoles/methodes citées plus haut.

          • [^] # Re: Tine 2.0 !

            Posté par . Évalué à 1.

            Une fois qu'on a goûte a ActiveSync, on ne revient jamais sur SyncML ;)

            Le support de SyncML a travers les différents terminaux est vraiment pas bon (enfin ça fait quelques temps que j'ai pas regardé...).

            En plus si la pérennité t'importe, ActiveSync c'est un protocole très utilisé par les entreprises.

            SyncML ou Funambol pour le coup me paraissent un poil moins surs. En plus ils sont horribles a mettre en place.

            Si tu veux utiliser Horde, Z-Push (le portage ActiveSync de Zarafa) a été adapté pour Horde donc c'est tout bon (sauf qu'il supporte pas les mails, juste contacts et calendrier).

            Tiens, si neammoins tu veux jeter un coup d'oeil a Tine, voila leur demo :
            https://demo.tine20.org/

        • [^] # Re: Tine 2.0 !

          Posté par . Évalué à 3.

          Y'a deux activesync chez Microsoft en fait.

          Le premier est un soft (de daube) qui effectivement permettait de synchroniser un Windows Mobile avec une installation outlook locale.

          Le deuxieme est un protocole (plutôt pas mal d'apres ceux qui l'implementent) qui permet de synchroniser emails, calendrier, contacts, notes et taches avec un serveur Exchange.

          Et comme c'est un protocole... eh bien c'est en fait pas seulement limite a Exchange.

  • # DAViCal

    Posté par (page perso) . Évalué à 2.

    Avantages :
    - TB a l'air d'etre supporté

    Je ne sais pas trop pour le CardDAV, mais pour le CalDAV (calendrier), le plugin lightning supporte en effet le CalDAV
    en natif, par contre j'ai souvent des bugs incomprehensible avec lightning...

    • android aussi, mais je ne sais pas a quel point (j'ai au moins trouvé 2 apks, mais il va falloir tester)

    Aucun support natif:
    CardDAV http://code.google.com/p/android/issues/detail?id=7639
    CalDAV http://code.google.com/p/android/issues/detail?id=2361

    il y a un projet pour compenser cette limitation:
    http://dmfs.org/caldav/
    http://dmfs.org/carddav/

    Pour l'instant, je me dirige vers DAViCal, mais j'aimerais bien vos avis sur 2 points :
    1. pensez-vous que ces solutions sont (un minimum) perennes ? (notemment, Kolab, j'ai pas l'impression qu'il y ait beaucoup d'activité)
    CardDAV et CalDAV sont des protos standardisés et ouvert donc a priori c'est la solution la plus perenne.

    1. Je n'ai pas reussi à avoir des infos sur la facon dont sont stockées les données sur DAViCal et funambol. Tout en BDD ? Je suis nul en *SQL, et j'avoue que la perspective de ne plus pouvoir "sortir" les données dans un format standard (iCal/vCard) me fait un peu peur, en cas de crash/non fonctionnement du serveur.

    Pas compris ... CalDAV/CardDAV c'est des protocoles basés sur iCal/vCard qui permettent la synchronisation incrementale.
    Donc ça veut dire que ton serveur et ton client contiennent l'intégralité des datas.
    Si tu veut une sécurité de plus il suffit de rajouter un "client" qui fetch toute la DB et tu a un backup au format iCal/vCard.

    • [^] # Re: DAViCal

      Posté par . Évalué à 1.

      Si tu veut une sécurité de plus il suffit de rajouter un "client" qui fetch toute la DB et tu a un backup au format iCal/vCard.

      Oui, c'est un peu ce dont je suis en train de me rendre compte : finalement, la BDD n'est pas si grave si on peux faire un backup via cadaver.
      La question a laquelle je suis vraiment confronté, maintenant, c'est le choix de DAV vs SyncML, puisque c'est un peu la pagaille au niveau des clients. Vu que Horde a l'air de faire les deux, je vais tenter ca.

      Pour info, pour faire du CalDAV sous android, il y a aussi un truc proposé par hypermatix :
      http://wiki.davical.org/w/CalDAV_Clients/Android
      (le 2eme apk dont je parlais, c'était celui-la)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.