Kolab 3.2 : retour d'expérience sous Debian Wheezy

39
27
juin
2014
Bureautique

Le webmail Roundcube propose une interface fonctionnelle et moderne pour gérer ses emails. Cependant, il lui manque plusieurs fonctionnalités (calendriers, tâches, partage, synchronisation mobile…) pour être compétitif sur le marché des outils professionnels de travail collaboratif.

Kolab est un projet (presque) clef-en-main proposant une solution complète de travail collaboratif, dont voici les principales fonctionnalités :

  • gestion unifiée des courriers, contacts, calendriers, tâches, fichiers et ressources partagées ;
  • gestion des utilisateurs via LDAP ;
  • accès par interface web (Roundcube) ou IMAP ;
  • prise en charge des protocoles CalDAV/CardDAV/WebDAV et ActiveSync pour synchronisation mobile et bureau.

Gestionnaire de tâches

Bien que la distribution de référence pour le développement et la mise en production de Kolab soit RHEL/CentOS, des paquets Debian sont disponibles. La version 3.2, sortie le 14 février 2014 a apporté des paquets Debian de bien meilleure qualité, ce qui m'a incité à migrer.

La suite de la dépêche présente l'historique du projet, l'architecture de la solution et un retour d'expérience d'installation sous Debian Wheezy.

Sommaire

Logo Kolab

Versions commerciales

Kolab System, l'entreprise derrière le projet, propose deux produits commerciaux :

  • l'offre grand public MyKolab : du "cloud", mais hébergé en Suisse ;
  • l'offre entreprise Kolab Entreprise : installation et support sur votre matériel.

Architecture de la solution

La principale force du projet est de réutiliser le maximum de composants standards, réduisant ainsi l'effort de développement et de maintenance des fonctionnalités de base, afin de se concentrer sur les fonctionnalités spécifiques.

Pour les DSI en herbe, voici un schéma des différentes briques logicielles dont le projet est constitué.

Transport des courriels : Postfix

Rien que du classique ici : Postfix pour la réception et l'envoi des courriels, et le trio AMaViS + SpamAssassin + ClamAV pour le filtrage antivirus / antispam.

Stockage et authentification : IMAP et LDAP

Le point d'orgue de la solution Kolab est de stocker toutes les données de l'utilisateur dans son compte IMAP. Chaque contact, chaque évènement de calendrier, chaque tâche à réaliser, est stocké comme pièce jointe d'un courriel dans le dossier idoine. Pour cela, les formats ouverts xCal et xCard (dérivés XML des fameux iCal et vCard) sont utilisés.
Ainsi, plutôt que de développer de zéro un serveur de stockage, un système d'authentification et un système de gestion des droits d'accès, l'équipe s'est basée sur le serveur IMAP Cyrus-IMAP.

La gestion des comptes utilisateurs est confiée à un serveur LDAP, par défault 389 Directory Server. Le démon kolabd est en charge de la synchronisation des informations entre les serveurs LDAP et IMAP (création des boîtes aux lettres, partages de dossiers…).

Interface utilisateur : Roundcube

Après avoir utilisé Horde pendant trois ans, Kolab a migré en 2012 vers Roundcube. Plusieurs greffons étendent les fonctionnalités de base du webmail pour l'interfacer avec le serveur.

Derrière le capot, rien que du classique LAMP dans la configuration par défaut.

Synchronisation : sabre/dav et synchrotron

Avant la refonte 3.0, le projet Kolab développait de nombreux connecteurs "natifs" (Thunderbird, Outlook, Android, iOS…) communiquant directement avec le serveur IMAP. Devant la difficulté à maintenir autant de connecteurs, la décision fut prise d'utiliser des protocoles d'échange compris par chacune des plateformes.

Les protocoles calDAV/cardDAV/webDAV sont pris en charge par le célèbre serveur Sabre/DAV, allant piocher directement dans le serveur IMAP.

Le protocole ActiveSync est quant à lui pris en change par Syncroton.

Installation sous Debian Wheezy

L'installation est plus ardue qu'un logiciel 100% PHP comme owncloud, mais des paquets sont disponibles pour les principales distributions, permettant d'automatiser grandement le processus.

Le guide d'installation a désormais une section spécifique à Debian.

Activation des dépôts

Il suffit d'ajouter les dépôts à apt-get, lancer la commande : apt-get install kolab et aller faire chauffer le thé.

Configuration initiale

Les paquets actuels pour la version 3.2 possèdent un bug bloquant dans le script de configuration. Pour le corriger, lancer les commandes suivantes :

wget --no-check-certificate  https://issues.kolab.org/attachment.cgi?id=698 -O /tmp/setup_roundcube.patch
cd /usr/share/pyshared/pykolab/setup
patch < /tmp/setup_roundcube.patch

Il suffit ensuite de lancer la commande : setup-kolab

Le plus simple est de confirmer tous les mots de passe par défaut, tout en copiant dans un coin le mot de passe du Directory Manager, qui nous servira à créer le premier utilisateur.

Création du premier utilisateur et accès

Tout se passe dans votre navigateur, à l'adresse $HOST/kolab-webadmin. Je vous renvoie encore une fois au manuel d'installation.

Lors de la création de votre utilisateur, ajoutez-le dans le groupe kolab-admin et oubliez simplement que Directory Manager existe !

Une fois l'utilisateur créé, vous pouvez accéder au webmail via $HOST/roundcubemail.

Synchronisation mobile

Pour la synchronisation Android, j'utilise l'excellent DAVdroid, ou plutôt son fork par l'équipe de Mirakel, qui permet de synchroniser les tâches en plus des contacts et calendriers.

Il suffit de paramétrer DAVdroid avec comme adresse : $HOST/iRony/

La synchronisation ActiveSync est prise en charge à la racine du domaine (module syncroton), la configuration est donc automatique. Idem pour les appareils Apple qui trouveront automatiquement les ressources cardDAV/calDAV via le dossier virtuel /.well-known/.

Partage WebDAV et module fichiers

Les fichiers sont accessibles à l'adresse $HOST/iRony/files/ avec tout bon client WebDAV.

Le projet ne fournit pas de client dédié pour la synchronisation, mais vous pouvez utiliser toute application générique, comme Syncany par exemple.

En bonus : le client web permet de prévisualiser les fichiers multimedia, les ODF, les PDF, mais aussi de modifier les fichiers texte avec coloration syntaxique !

Exemple

Le module fichiers étant le plus jeune de la famille, il n'est pas aussi abouti que les autres, mais de solides bases sont déjà là.

Clients pour le bureau

Le client privilégié pour le bureau est bien entendu Kontact du projet KDE. Il permet de profiter de l'intégralité des fonctionnalités de Kolab, dont la synchronisation des notes et des journaux (que le client web ne gère pas encore).

Pour les inconditionnels de Thunderbird et Lightning, deux greffons existent :

Pour les utilisateurs sous Windows, Kolab gère ActiveSync et fonctionne donc avec Outlook.

Quelques optimisations et configurations maison

Utiliser le prénom comme nom d'utilisateur

La configuration par défaut est d'utiliser le nom de famille comme nom d'utilisateur. Ceci est OK dans un contexte professionnel, mais assez étrange dans le cadre d'un serveur perso. Il suffit de modifier le fichier /etc/kolab/kolab.conf. Voici mes modifications :

policy_uid = %(givenname)s.lower()
primary_mail = %(givenname)s@%(domain)s
secondary_mail = {
        0: {
        "{0}@{1}": "format('%(givenname)s.%(surname)s', '%(domain)s')"
        }
        }

Effacez les doublons éventuels de ces variables en fin de fichier, dans la section spécifique au domaine. Pour que les modifications soient prises en compte, redémarrer le service kolab-server

Utiliser une adresse externe

Vous avez probablement plusieurs adresses et souhaitez pouvoir les utiliser. Pour cela :

  • enregistrez vos adresses externes dans votre compte utilisateur (via web admin panel)
  • modifiez dans le fichier /etc/kolab/kolab.conf la directive suivante : address_search_attrs = mail, alias, mailalternateaddress
  • dans /etc/roundcubemail/config.inc.php ajoutez 'email:external' => 'mailalternateaddress', à la variable $config['kolab_auth_addressbook']
  • créez une nouvelle identité dans la configuration de Roundcube

Installation d'APC

APC est un module PHP permettant de conserver en mémoire le bytecode préparé pour exécution. Il permet donc de réduire significativement la latence lors des requêtes. Sous Debian Wheezy, son installation se résume à la commande apt-get install php-apc. L'administrateur chevronné pourra configurer aux petits oignons par la suite.

Configuration de MySQL

Le projet Kolab a fait le choix d'utiliser MySQL pour Roundcube. MySQL est souvent décrié pour ses mauvaises performances, mais une configuration adaptée permet d'améliorer grandement la donne.
La configuration par défaut dans Debian vise à utiliser le minimum de mémoire, au détriment des performances. Cependant, plusieurs exemples de configuration sont disponibles dans /usr/share/doc/mysql-server-5.5/examples/.
Pour mon VPS possédant 1 Go de mémoire vive, j'ai choisi la configuration my-large. L'installation se résume à :

zcat /usr/share/doc/mysql-server-5.5/examples/my-large.cnf.gz > /etc/mysql/my.cnf`

Désactivation de ClamAV

Si, comme moi, vous savez qu'il ne faut pas ouvrir une pièce jointe binaire, l'antivirus ClamAV installé par défaut ne vous sert à rien et consomme plusieurs centaines de Mo.
Les paquets de Kolab ayant une dépendance forte vers ClamAV, la solution la plus simple est donc de créer un faux paquet clamav-daemon avant l'installation de Kolab.
Amavis et spamassassin fonctionneront toujours sans autre configuration nécessaire.

Note : On peut aller plus loin en désactivant AMaViS et SpamAssassin pour utiliser DSPAM, ce qui permet de faire tourner Kolab dans un VPS doté de 512 Mo de RAM. Ceci demande de modifier la configuration de Postfix à la main.

Le mot de la fin

Le projet Kolab a repris du poil de la bête ces dernières années et la version 3.2 est réellement mature et utilisable dans un contexte personnel avec un minimum de configuration. Le parti pris de réutiliser des briques logicielles éprouvées donne une solution robuste et maîtrisée.

Et les développeurs ne sont pas près de s'endormir sur leurs lauriers. Parmi les fonctionnalités à venir, nous pouvons compter :

  • l'intégration de jabber/xmpp dans Roundcube ;
  • indexation des courriels pour accélérer la recherche et l'intégration dans Roundcube d'une recherche simultanée dans tous les dossiers ;
  • édition collaborative de documents via le module fichiers.

En bon geek, j'aurais bien entendu préféré utiliser comme d'habitude slapd, PostgreSQL, Dovecot… Mais l'apprentissage de ces nouvelles solutions vaut le coup, tant l'ensemble est bien intégré et performant.

Après l'essai de nombreuses solutions, il s'agit selon moi de la solution de travail collaboratif libre la plus aboutie du marché.

Aller plus loin

  • # Alternative

    Posté par  . Évalué à 0.

    Il y a un autre projet historique qui marche relativement bien malgré sa réputation de configuration complexe.
    Horde
    Avec les dernière version l'interface vaut largement un RoundCube et gère tout ce que tu viens de décrire et bien plus (ActiveSync, Ldap, etc.)

    J'ai pendant un moment utilisé RoundCube, mais sans plein de plugin il ne se démarquait pas vraiment de la concurrence mis à part son interface (et encore)
    Depuis peu je suis passé à RainLoop et je le trouve vraiment agréable, joli et simple de configuration. Pas besoin de BDD, et il peut se connecter aux différent serveur SMTP en tant que simple client, passer d'un compte a l'autre se fait un 2 clic (j'ai compté).

    • [^] # Re: Alternative

      Posté par  (site web personnel) . Évalué à 5.

      Depuis peu je suis passé à RainLoop

      Sa licence n'est pas terrible (CC BY-NC-SA 3.0), il me semble pas que cette licence soit adapté aux logiciels mais surtout, j'ai cru comprendre que le NC posait plus de problème qu'il n'en résolvait !

    • [^] # Re: Alternative

      Posté par  (site web personnel) . Évalué à 4.

      Depuis peu je suis passé à RainLoop

      Dommage qu'il ne soit absolument pas libre, ni même gratuit (sauf quelques exceptions, mai ça reste des exceptions)

      • [^] # Re: Alternative

        Posté par  . Évalué à -1.

        c'est quoi la différence entre "absolument pas libre" et "pas libre" ? Par exemple, Lotus Notes, c'est absolument pas libre, RainLoop non plus selon toi (parce que NC). Tu aurais un exemple de logiciel juste "pas libre" ?

        Et si j'installe RainLoop dans mon entreprise, il se passe quoi ?

        « Le pouvoir des Tripodes dépendait de la résignation des hommes à l'esclavage. » -- John Christopher

        • [^] # Re: Alternative

          Posté par  . Évalué à 3.

          Et si j'installe RainLoop dans mon entreprise, il se passe quoi ?

          Ton entreprise risque de tomber dans une boucle infinie ~~~~> []

          de même que nous profitons des avantages que nous apportent les inventions d'autres, nous devrions être heureux d'avoir l'opportunité de servir les autres au moyen de nos propres inventions ;et nous devrions faire cela gratuitement et avec générosité

    • [^] # Re: Alternative

      Posté par  (site web personnel) . Évalué à 4.

      RainLoop est hors sujet ici car il n'est ni libre, ni une solution de travail collaboratif (ne gère que les email).
      Pour information, Roundcube est capable de gérer plusieurs serveurs IMAP, il suffit de les lister dans le fichier de configuration. Par compte, pour passer d'un compte à l'autre, il faut se déconnecter et se reconnecter avec ses nouveaux identifiants.

  • # et pourquoi pas BlueMind

    Posté par  . Évalué à -10. Dernière modification le 27 juin 2014 à 14:30.

    pourquoi ne pas avoir essayé BlueMind lui aussi mature et OpenSource seul les : connecteur outlook et l'outil de mise à jour (plus embêtant mais se contourne en exportant et important un backup)sont dans la version PRO

    mais il est vrai que KOLAB est un très bon produit qui a gagné en maturité fonctionnelle depuis la V3

    • [^] # Re: et pourquoi pas BlueMind

      Posté par  . Évalué à 10.

      Parce que c'est une dépêche sur Kolab ?
      Au lieu de poster hors-sujet, écris nous en une sur BlueMind.

      "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

      • [^] # Re: et pourquoi pas BlueMind

        Posté par  . Évalué à 2.

        Ce n'est pas hors sujet ; au regard de la conclusion de l'article on peut se demander quelles ont été les autres solutions libres testées ou essayées : BlueMind, Zimbra, OBM, eGroupWare, Open-Xchange, … ?

        Après l'essai de nombreuses solutions, il s'agit selon moi de la solution de travail collaboratif libre la plus aboutie du marché.

      • [^] # Re: et pourquoi pas BlueMind

        Posté par  . Évalué à 1. Dernière modification le 16 juillet 2014 à 18:11.

        Il serait intéressant par contre d'en faire un comparatif. En tout cas ça m'intéresserait grandement.

  • # My Kolab

    Posté par  . Évalué à 4.

    Le webmail Roundcube propose une interface fonctionnelle et moderne pour gérer ses emails.

    L'interface est quand même moins moderne maintenant, assez statique d'ailleurs par rapport à d'autres boites mail.

    Etant donné qu'il y a pas mal de chose intégré je me suis dit pourquoi pas, mais je trouve l'offre My Kolab bien cher pour une offre sois-disant grand public, presque 7 euros par mois pour du mail ? Argh.

    de même que nous profitons des avantages que nous apportent les inventions d'autres, nous devrions être heureux d'avoir l'opportunité de servir les autres au moyen de nos propres inventions ;et nous devrions faire cela gratuitement et avec générosité

    • [^] # Re: My Kolab

      Posté par  . Évalué à 3.

      assez statique d'ailleurs par rapport à d'autres boites mail.

      Tu as des exemples?
      C'est une vraie question, je n'ai pas trop regardé le marché des webmail depuis que je suis passé sur roundcube il y a 5 ans.

      • [^] # Re: My Kolab

        Posté par  . Évalué à 2.

        J'ai essayé atmail et zimbra par exemple que je trouve moins lourdeau à l'utilisation que roundcube. Actuellement j'utilise roundcube parce que je n'ai pas trouvé de solution gratuite satisfaisante ou de payante pas trop cher.

        de même que nous profitons des avantages que nous apportent les inventions d'autres, nous devrions être heureux d'avoir l'opportunité de servir les autres au moyen de nos propres inventions ;et nous devrions faire cela gratuitement et avec générosité

        • [^] # Re: My Kolab

          Posté par  . Évalué à 3.

          Je ne connaissais pas AtMail, et force est de constater que la démo est plutôt sexy.
          Mais bon en n'étant ni libre ni gratuit, on ne peut pas vraiment le comparer à Roundcube.

          Zimbra c'est surement une question de point de vue, mais je l'ai toujours trouvé beaucoup plus lourd que Roundcube.
          C'est peut-être personnel ;)

          • [^] # Re: My Kolab

            Posté par  . Évalué à 2.

            J'ai donné atmail juste comme exemple en fait :)

            de même que nous profitons des avantages que nous apportent les inventions d'autres, nous devrions être heureux d'avoir l'opportunité de servir les autres au moyen de nos propres inventions ;et nous devrions faire cela gratuitement et avec générosité

          • [^] # Re: My Kolab

            Posté par  . Évalué à 3.

            Et surtout que zimbra est bien plus lourd coté serveur;
            Java et la performance…

            Sur mon petit kimsufi, je trouvais le serveur limite pour faire tourner Zimbra correctement, depuis que je suis passé a Kolab, le serveur est limite surdimensionné…

    • [^] # Re: My Kolab

      Posté par  (Mastodon) . Évalué à 4. Dernière modification le 28 juin 2014 à 09:28.

      presque 7 euros par mois pour du mail ?

      • Pour du mail, c'est moins de 4€ mensuel avec le stockage par défaut de 2Go
      • Toujours pour du mail uniquement, avec un stockage équivalent à ce que propose google (10Go) c'est 7€ mensuel.
      • La même avec toutes les features comme calendrier, synchro des notes, gestion des contacts, c'est 10€ mensuel.

      4€ mensuel c'est pas la mer à boire… & ça finance du libre.

      Mais il manque une information essentielle à mes yeux : je veux savoir où sont physiquement mes données : quel datacenter + quel matériel + quelle distribution + quel chiffrement. C'est anecdotique sur l'offre, ça pourrait être mentionnée en petit, mais ça manque cruellement.

      Ensuite, et en moins anedoctique, il manque un chapitre sur la pérénité. Rien ne sert de se précipiter sur une telle offre (ou n'importe quelle autre) si c'est pour en changer dans deux ans. Et là, il manque (un attachement à) la gestion du domaine. Il manque aussi une facilité pour l'archivage local et directement exploitable. C'est là que le bas blesse (à mon sens) : c'est une offre comme les autres de "service groupware" alors que le geek s'en fout : il voudrait le service d'hébergement de la distro et des softs, leurs maintiens, la vie des nouveaux entrants et sortants, et l'archivage du reste. A quoi sert de garder 10go sous la forme mail ? A gagner 2 minutes d'importations dans son client local d'archives horodatées  ? Je rêve en écrit public, mais à mon goût de geek, ça manque de détails sur l'offre et de simplicité sur la solution.

      • [^] # Re: My Kolab

        Posté par  . Évalué à 3.

        Pour du mail, c'est moins de 4€ mensuel avec le stockage par défaut de 2Go

        Effectivement je n'avais pas vu la case à cocher qui permet d'enlever quelques euros.

        La même avec toutes les features comme calendrier, synchro des notes, gestion des contacts, c'est 10€ mensuel.

        Pour moi le minimum est quand même de proposer du mails/contacts synchronisé et 10 € mensuel c'est très cher pour ce genre de service.

        de même que nous profitons des avantages que nous apportent les inventions d'autres, nous devrions être heureux d'avoir l'opportunité de servir les autres au moyen de nos propres inventions ;et nous devrions faire cela gratuitement et avec générosité

  • # Démo privée disponible sur demande

    Posté par  (site web personnel) . Évalué à 1.

    Le projet ne propose malheureusement pas de démo publique. J'ai créé un compte sur mon serveur perso que je peux mettre à disposition de personnes réellement intéressées pour tester la solution.

    Pour éviter de linuxfriser mon serveur perso, je vous propose de me contacter par message privé sur IRC (xvello@freenode) pour me demander l'accès. Résidant actuellement à GMT-6, je vous répondrais lorsque vous dormirez ;)

  • # Dépots

    Posté par  . Évalué à 3. Dernière modification le 28 juin 2014 à 23:47.

    Je suis le seul à trouver que les URL des dépôts ont une gueule bizarre (les : dans le chemin, la cible ./ et le port 82) ?

    • [^] # Re: Dépots

      Posté par  (site web personnel) . Évalué à 3.

      Ils utilisent une instance auto-hébergée de Open Build Service, qui fut créé par le projet openSUSE.
      Au lieu de compiler les paquets avant de les envoyer vers le serveur comme la plupart des dépôts de paquet .deb, les mainteneurs donnent les fichiers de configuration et l'archive source au serveur qui fait la compilation avant publication. Ainsi, une mise à jour mineure peut être déployée très facilement sur toutes les distributions supportées en changeant juste l'archive source.
      Comme le logiciel vient du monde RPM, l'arborescence est étrange pour un utilisateur Debian, j'en conviens. Mais l'important est que ça marche :)

      • [^] # Re: Dépots

        Posté par  . Évalué à 2.

        Merci pour les info. Je ne connaissais pas Open Build Service.

  • # ActiveSync

    Posté par  . Évalué à 2. Dernière modification le 30 juin 2014 à 22:51.

    Bonjour,
    Suite à cet article, j'ai migré de iRedmail vers Kolab sous debian. Nickel, j'en suis très content. Merci pour ton article bien fait. Par contre, j'ai un soucis avec l'ActiveSync. Je n'arrive pas à l'utiliser sur mon iphone ios7. J'ai bien accès à l'url http://monserveur.fr/Microsoft-Server-ActiveSync qui me demande de m'authenfier et tout semble ok sauf que ca marche pas sur le téléphone.
    Une idée ? ;)
    (au pire je passe par imap/carddav/caldav mais y a le push sur l'exchange, d'où ma question)

    • [^] # Re: ActiveSync

      Posté par  (site web personnel) . Évalué à 2.

      Content d'avoir créé de la curiosité au delà des habituels trolls !

      Peux-tu regarder les logs dans /var/log/kolab-syncroton/errors ?
      Si tu as des "failed to get folder state" il s'agit de ce bug; je vais regarder si quelqu'un a une idée du problème.

      • [^] # Re: ActiveSync

        Posté par  . Évalué à 2.

        Encore merci, j'ai corrigé mon erreur. C'est top.
        Reste plus qu'un petit bonus pour moi : le multi-domaine géré de manière independant.
        histoire que je puisse gérer les emails de mes deux domaines. J'ai vu quelques docs, c'est pas gagné.

        Sinon, vraiment une belle découverte. Tout est synchronisé et géré sur mes différentes plateformes.
        Merci encore

Suivre le flux des commentaires

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