Sommaire
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 :
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é.