Étude de cas : la refonte de SOGo 6, groupware open source
SOGo est une messagerie collaborative open source utilisée par des entreprises et des communautés depuis plus de vingt ans. Sébastien Mizrahi, architecte logiciel à Lyon, participe à sa refonte complète : études, architecture, prototypes, puis développement de la nouvelle API en Python.
Le contexte
SOGo réunit webmail, agendas et carnets d’adresses, avec partage de ressources et gestion des droits. Il s’appuie sur des standards documentés (IMAP, CalDAV, CardDAV) et se connecte nativement à de nombreux clients : Microsoft Outlook, Apple Calendar, iPhone, Thunderbird et une foule d’appareils mobiles.
La version 5, écrite en Objective-C sur le framework SOPE, rassemble plus de 2 100 étoiles sur GitHub. Avec SOGo 6, Alinto a choisi une refonte totale : une API moderne en Python et une nouvelle interface web.
L’enjeu
Refondre un logiciel installé depuis vingt ans, ce n’est pas repartir d’une page blanche. Il faut garder ce qui fait sa valeur (les standards, la compatibilité avec les clients existants, l’administration) tout en offrant une base de code que de nouveaux développeurs peuvent comprendre et faire évoluer.
Avant SOGo 6, j’avais déjà contribué au développement de SOGo, à l’animation de sa communauté et à des outils anti-spam.
Prototyper avant de construire
Le projet n’a pas commencé par du code de production, mais par les décisions qui conditionnent tout le reste.
Études techniques
Analyse de l’existant, des protocoles à conserver et des options technologiques pour la nouvelle version.
Proposition d’architecture
Découpage de la nouvelle plateforme, séparation entre l’API et l’interface, choix des briques d’infrastructure.
Prototypes
Un POC de serveur MAPI, le protocole de Microsoft Outlook, pour lever les points à risque avant de s’engager.
Développement
Calendrier, contacts et agent asynchrone, sur une API Python déployée en conteneurs.
La plateforme SOGo 6
L’interface et l’API sont deux projets séparés : l’API peut servir la nouvelle interface, des scripts ou toute autre application.
Source : dépôts publics Alinto/SOGo6-server et Alinto/SOGo6-UI, documentation SOGo 6.
Ma contribution
- Études techniques et proposition d’architecture de la nouvelle plateforme.
- POC d’un serveur MAPI, pour évaluer la connexion des clients Outlook.
- Développement de l’API : calendrier, contacts et agent asynchrone.
- Industrialisation : conteneurs, déploiement sur Kubernetes, tâches Celery.
Sur GitHub, je suis le principal contributeur du dépôt SOGo6-server, avec plus de cent commits (septembre 2026). Le code est public, sous licence GPL v3 : chacun peut juger sur pièce.
Ce que ce projet illustre
- Séparer l’API de l’interface rend la plateforme ouverte et remplaçable morceau par morceau.
- Prototyper les points à risque coûte peu et évite de s’engager sur une impasse.
- S’appuyer sur les standards préserve tout l’écosystème de clients existants.
- Travailler en open source impose un code et une documentation lisibles par tous.
Un projet exigeant ? Parlons architecture.
Depuis Chaponost, à côté de Lyon, sur place ou à distance. Réponse rapide avec une première analyse de votre besoin.