Messagerie d'équipe open source à grande échelle : héberger Mattermost soi-même

Tous les deux ou trois ans, une entreprise regarde sa facture Slack, additionne le coût par utilisateur, constate que dix ans de conversations internes dorment dans la base de données de quelqu'un d'autre, dans une autre juridiction, et se demande s'il existe une autre voie. Elle existe. Mattermost est la réponse auto-hébergée la plus crédible, et cela dure depuis un moment.
C'est aussi l'outil le plus souvent mal compris avant son déploiement, parce que l'édition gratuite que l'on croit obtenir n'est presque jamais celle que l'on finit par exploiter. Ce guide explique ce qu'est réellement Mattermost, ce que la version gratuite contient vraiment, et les trois problèmes d'exploitation qui rattrapent presque tous ceux qui l'hébergent pour la première fois.
Ce qu'est Mattermost
Un serveur en Go, une base PostgreSQL, un client web en React, et des applications natives pour le bureau et le mobile. Canaux, fils de discussion, partage de fichiers, recherche, commandes slash, webhooks entrants et sortants, bots, et un cadre de plugins. Si vous avez utilisé Slack, vous serez productif en un après-midi, et tout le monde aussi, ce qui compte davantage que n'importe quelle liste de fonctionnalités quand il s'agit de faire déménager une entreprise entière.
Autour de ce noyau se trouvent les Playbooks, pour le travail d'incident et de processus piloté par listes de contrôle, et Calls, pour l'audio, la vidéo et le partage d'écran. Le catalogue d'intégrations couvre les suspects habituels : GitLab, GitHub, Jira, Jenkins, PagerDuty. C'est sur le ChatOps que le produit est réellement fort, ce qui explique son succès auprès des équipes d'ingénierie et d'exploitation, et auprès des organisations de défense et du secteur public qui ne peuvent tout simplement pas confier leur trafic à un SaaS commercial.
Le fait architectural important est que tout cela tourne sur une infrastructure que vous choisissez. Le même principe que pour héberger vos statistiques avec Matomo ou votre automatisation marketing avec Mautic. Les messages sont dans votre base, les fichiers dans votre stockage objet, et personne ne peut changer la politique de rétention ou le tarif sans vous demander.
L'état des licences, dit clairement
C'est là que les gens se perdent, autant être direct.
Team Edition est la version open source. Sous licence MIT, gratuite, sans plafond d'utilisateurs, et c'est celle que la plupart des auto-hébergeurs font réellement tourner. Vous avez la messagerie, les canaux, les fils, la recherche, les intégrations, les webhooks et le cadre de plugins. Vous n'avez pas l'authentification unique SAML ou AD/LDAP, ni l'export de conformité, ni la recherche entreprise, ni la haute disponibilité en cluster, ni les comptes invités.
Entry est une édition commerciale gratuite. Elle débloque l'ensemble avancé des fonctionnalités mais vous plafonne : l'historique des messages est limité, le nombre d'exécutions de playbooks est limité, le support est communautaire uniquement, et elle vise les équipes de moins d'une cinquantaine de personnes. C'est une bonne façon d'évaluer le produit payant. C'est une mauvaise façon de bâtir un foyer durable pour l'historique des conversations de l'entreprise, puisque cette limite d'historique porte précisément sur ce qui finira par compter.
Professional, Enterprise et Enterprise Advanced sont les niveaux payants. Professional ajoute le SSO, la MFA et les permissions avancées. Enterprise ajoute la synchronisation AD/LDAP, l'automatisation de la conformité, la recherche entreprise, la haute disponibilité et les Playbooks à grande échelle. Enterprise Advanced ajoute le traitement des informations classifiées, les contrôles zero trust et le déploiement en réseau isolé, et c'est le niveau où se trouvent les utilisateurs de la défense et de l'administration. Mattermost ne publie plus de tarif par utilisateur, prévoyez donc une conversation avec un commercial.
La décision à laquelle la plupart des équipes font face est plus simple que cette liste ne le laisse croire. S'il vous faut SAML contre votre fournisseur d'identité, vous paierez. Si vous pouvez vivre avec des comptes locaux ou OAuth GitLab, la Team Edition portera une organisation étonnamment grande.
La mise en place
Un petit déploiement
Pour une équipe de quelques dizaines à quelques centaines de personnes, un seul VPS correctement dimensionné suffit vraiment. Les recommandations de Mattermost placent un à mille utilisateurs sur un vCPU et 2 Go de RAM, ce qui est optimiste comme le sont toujours les minima d'éditeur. Donnez-lui quatre cœurs et 8 Go et vous n'y penserez plus jamais.
La pile se compose de Mattermost, de PostgreSQL et d'un reverse proxy qui termine le TLS. Traefik avec Let's Encrypt demande le moins de travail :
services:
mattermost:
image: mattermost/mattermost-team-edition:latest
restart: unless-stopped
environment:
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:your_secure_password@db:5432/mattermost?sslmode=disable
- MM_SERVICESETTINGS_SITEURL=https://chat.example.com
volumes:
- mm_data:/mattermost/data
- mm_config:/mattermost/config
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=mmuser
- POSTGRES_PASSWORD=your_secure_password
- POSTGRES_DB=mattermost
volumes:
- db_data:/var/lib/postgresql/data
volumes:
mm_data:
mm_config:
db_data:
Réglez correctement SiteURL avant d'inviter qui que ce soit. Une SiteURL fausse ou absente casse les notifications push, les rappels OAuth et les aperçus de liens, d'une manière pénible à déboguer plus tard et triviale à éviter maintenant.
Une réserve mérite d'être répétée, l'éditeur la formule lui-même : les conteneurs conviennent pour l'évaluation et pour de petites installations de production, mais la voie conteneurisée ne vous donne ni clustering ni haute disponibilité d'emblée. Si vous en avez besoin, déployez directement sous Linux ou utilisez l'opérateur Kubernetes.
Un déploiement de production
PostgreSQL 14 ou plus récent. La prise en charge de MySQL est en cours d'abandon à partir de la v11 : si vous montez quelque chose aujourd'hui, ne partez pas sur MySQL. Amazon Aurora PostgreSQL est pris en charge et constitue l'option managée raisonnable sur AWS.
Placez les fichiers dans un stockage objet compatible S3 dès le premier jour. Le système de fichiers local fonctionne et c'est la valeur par défaut, et c'est aussi ce qui rend discrètement votre serveur avec état, vos sauvegardes énormes et votre migration douloureuse. Basculer plus tard, c'est déplacer des fichiers et réécrire des chemins. Basculer à l'installation, c'est renseigner une poignée de valeurs de configuration.
Pour la haute disponibilité, il vous faut le niveau Enterprise : plusieurs nœuds applicatifs derrière un répartiteur de charge, un stockage objet partagé, et une base avec réplicas en lecture. Pour la recherche à grande échelle, vous voudrez Elasticsearch ou OpenSearch, également Enterprise. La recherche plein texte de PostgreSQL suffit pour quelques centaines de personnes et quelques millions de messages, et la recherche CJK fonctionne désormais par défaut sur PostgreSQL, ce qui était autrefois une vraie raison d'acheter le module de recherche.
Les trois choses qui tournent mal
Tout ce qui précède figure dans la documentation. Ce qui suit, on le découvre en production.
Les notifications push ne sont pas gratuites comme vous l'imaginez
Le push mobile doit passer par les réseaux d'Apple et de Google, ce qui veut dire que quelque chose doit détenir les certificats de signature. Mattermost exploite un Test Push Notification Service qui fonctionne immédiatement et qui n'est explicitement pas destiné à la production. Le Hosted Push Notification Service est celui de production, et il vient avec une licence payante.
La troisième option est d'héberger votre propre push proxy. C'est bien documenté et tout à fait faisable, mais cela suppose de construire et de distribuer votre propre application mobile avec vos propres identifiants Firebase et APNs, c'est-à-dire une relation avec les magasins d'applications et un processus de publication, pas un après-midi.
Choisissez laquelle des trois avant de déployer sur les téléphones, et non après que la première personne a demandé pourquoi elle ne reçoit les messages que lorsque l'application est ouverte. Ce seul point fait échouer plus de migrations Mattermost que tout le reste.
Calls demande plus qu'un port
Calls a deux modes. Le mode intégré fait tourner le service média à l'intérieur du serveur Mattermost et il est recommandé en dessous d'une cinquantaine d'utilisateurs actifs. Au-delà, vous voudrez rtcd, un service séparé qui garde le média des appels hors de votre serveur principal et qui passe à l'échelle horizontalement. rtcd exige Enterprise.
Dans les deux cas, les clients doivent joindre le service média en UDP sur le port 8443, et ce port doit être ouvert sur la machine qui héberge ce service. Votre reverse proxy nginx ne le relaiera pas, parce que nginx n'est pas sur le chemin UDP. La moitié des discussions du type « les appels ne se connectent pas » se ramènent à une règle de pare-feu jamais ajoutée.
Sur le niveau gratuit, attendez-vous à des appels en tête-à-tête avec limite de durée plutôt qu'à des appels de groupe illimités. Si la visioconférence à l'échelle de l'entreprise est une exigence, chiffrez-la.
Quelqu'un doit l'exploiter
La comparaison honnête n'est pas licence contre zéro. C'est licence contre infrastructure plus la personne qui applique les correctifs. Mattermost publie souvent, vous voudrez rester à jour pour des raisons de sécurité, et les montées de version impliquent des migrations de base qu'il vaut mieux tester ailleurs qu'en production.
Pour une équipe qui exploite déjà sa propre infrastructure, c'est du travail marginal et le calcul est écrasant. Pour une entreprise de dix personnes sans capacité d'exploitation, une facture SaaS peut réellement coûter moins cher que les mardis après-midi perdus. Soyez honnête sur le cas dans lequel vous êtes.
Quitter Slack
Mattermost dispose d'un chemin d'import depuis les fichiers d'export Slack, et il fonctionne, avec des réserves qu'il vaut mieux connaître à l'avance. Les messages des canaux publics et les utilisateurs passent bien. Les canaux privés et les messages directs dépendent de ce que votre offre Slack vous autorise à exporter. Les fils, les pièces jointes, les emoji personnalisés et les intégrations demandent de l'attention, et certains doivent être refaits.
L'approche qui marche : importer l'historique comme une archive consultable, et traiter la date de bascule comme un départ propre. Vouloir reproduire chaque comportement de Slack à l'identique, c'est transformer une migration de deux semaines en une migration de deux trimestres.
Faites tourner les deux en parallèle une quinzaine de jours, déplacez une équipe d'abord, et annoncez publiquement la date d'extinction dès le départ. Les migrations de messagerie échouent socialement, pas techniquement.
L'angle européen
Pour les entreprises de l'UE, il ne s'agit pas seulement de coût. L'auto-hébergement place la communication interne à l'intérieur d'un périmètre que vous contrôlez, ce qui modifie plusieurs conversations à la fois : l'analyse des transferts au titre du RGPD, l'examen de la chaîne d'approvisionnement au titre de NIS2, et les questions de souveraineté qui apparaissent de plus en plus dans la commande publique et qui font tout le sujet du Cloud and AI Development Act.
La messagerie interne est l'une des concentrations de matière confidentielle les plus denses que possède une entreprise. On y trouve le détail des incidents, des noms de clients, des identifiants que personne n'aurait dû coller mais que quelqu'un a collés, et toutes les négociations commerciales en cours. Quand on vous demande où vivent ces données, pouvoir répondre par une région et une baie plutôt que par une liste de sous-traitants a de la valeur.
Quand s'abstenir
Si vous êtes quinze, que vos exigences de conformité sont légères et que personne n'a envie de posséder un serveur, prenez le SaaS. L'économie ne couvrira pas l'attention dépensée.
S'il vous faut une intégration profonde avec un écosystème que vous habitez déjà, regardez précisément ce que vous perdriez. Les équipes installées dans un parc Microsoft 365 reçoivent gratuitement beaucoup de choses qu'il faudrait reconstruire.
Et si le moteur est l'aversion d'une personne bruyante envers un fournisseur plutôt qu'une vraie exigence de coût, de contrôle ou de juridiction, la migration calera vers soixante pour cent d'adoption, ce qui est le pire résultat possible pour un outil de communication.
Se faire aider
Nous déployons et exploitons des infrastructures open source auto-hébergées pour des entreprises actives en Europe, y compris les parties ingrates : push proxies, migrations vers le stockage objet, chemins de mise à jour et intégration d'identité, celle qui fait qu'un déploiement de messagerie tient dans la durée.
Si vous voulez une installation Mattermost correctement dimensionnée, une migration Slack planifiée par quelqu'un qui en a déjà fait, ou une réponse honnête sur l'intérêt de l'auto-hébergement pour votre équipe, écrivez à office@c9group.dev. Plus d'informations sur notre travail d'infrastructure sur la page d'optimisation des coûts AWS.
Si vous assemblez une pile auto-hébergée complète, le même raisonnement vaut pour les statistiques et pour l'automatisation marketing.
Publié le 8 août 2026 Catégories : Collaboration, Open Source, Confidentialité