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.
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
- Versions commerciales
- Architecture de la solution
- Installation sous Debian Wheezy
- Quelques optimisations et configurations maison
- Le mot de la fin
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 !
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 :
- SyncKolab utilise directement le protocole Kolab ;
- SoGo Connector passe par les protocoles cardDAV/calDAV.
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
- Site officiel du projet (758 clics)
- Guide d'installation (341 clics)
- Captures d'écran (version commerciale) (408 clics)
# Alternative
Posté par Mimoza . É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 Sytoka Modon (site web personnel) . Évalué à 5.
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 Zenitram (site web personnel) . Évalué à 4.
Dommage qu'il ne soit absolument pas libre, ni même gratuit (sauf quelques exceptions, mai ça reste des exceptions)
[^] # Re: Alternative
Posté par zurvan . É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 Argon . Évalué à 3.
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 Xavier Vello (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 ddfdom . É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 ZeroHeure . É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 croux . É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, … ?
[^] # Re: et pourquoi pas BlueMind
Posté par woprandi . É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 Argon . Évalué à 4.
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 Seb . Évalué à 3.
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 Argon . É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 Seb . É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 Argon . É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 Fabien PRORIOL . É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 bubar🦥 (Mastodon) . Évalué à 4. Dernière modification le 28 juin 2014 à 09:28.
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 Argon . Évalué à 3.
Effectivement je n'avais pas vu la case à cocher qui permet d'enlever quelques euros.
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 Xavier Vello (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 Anonyme . É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 Xavier Vello (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 Anonyme . Évalué à 2.
Merci pour les info. Je ne connaissais pas Open Build Service.
# ActiveSync
Posté par jeffonline . É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 Xavier Vello (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 jeffonline . É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
[^] # Re: ActiveSync
Posté par Xavier Vello (site web personnel) . Évalué à 1.
Pour ma curiosité, comment as-tu corrigé la situation ?
Il existe un HOWTO pour le multi domaine, mais garde en tête qu'il est écrit pour CentOS, il faudra dont changer quelques chemins de fichier pour Debian.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.