Comment installer Mattermost sur Ubuntu : Guide complet étape par étape
Mattermost est une plateforme puissante et open-source de messagerie et de collaboration d’équipe qui donne aux organisations un contrôle total sur leur infrastructure de communication. En tant qu’alternative auto-hébergée à Slack et Microsoft Teams, Mattermost offre une sécurité de niveau entreprise, une propriété complète des données et une personnalisation extensive — le tout sans frais d’abonnement SaaS récurrents.
Ce guide complet vous guide à travers chaque étape de l’installation et de la configuration de Mattermost sur un serveur Ubuntu, y compris la configuration de la base de données PostgreSQL, la configuration du proxy inverse Nginx et l’intégration des certificats SSL.
1. Prérequis
Avant de commencer, assurez-vous que les conditions suivantes sont en place :
- Un serveur exécutant Ubuntu 20.04 ou Ubuntu 22.04 LTS (Ubuntu 18.04 est en fin de vie et non recommandé pour la production)
- Privilèges Sudo ou root sur le serveur
- Un nom de domaine pointant vers l’adresse IP de votre serveur (fortement recommandé pour les déploiements en production)
- Matériel minimum : 1 vCPU, 2 GB RAM, 10 GB d’espace disque (pour les petites équipes) ; augmentez la capacité pour les déploiements plus importants
> Conseil d’hébergement : Pour un déploiement fluide de Mattermost, envisagez un plan VPS Hosting fiable d’AlexHost. Avec le stockage SSD, l’accès root complet et un uptime garanti, les instances VPS d’AlexHost sont idéales pour les outils de collaboration auto-hébergés.
2. Mettre à jour votre système
Commencez toujours par actualiser votre index de paquets et appliquer toutes les mises à jour de sécurité et système en attente :
sudo apt update
sudo apt upgrade -yRedémarrez le serveur si une mise à jour du noyau a été appliquée :
sudo reboot3. Installer les dépendances requises
Mattermost dépend de trois composants clés : PostgreSQL (base de données), Nginx (proxy inverse), et Certbot (gestion des certificats SSL).
Installez tous les packages requis en une seule étape :
sudo apt install -y postgresql postgresql-contrib
sudo apt install -y nginx
sudo apt install -y certbot python3-certbot-nginxVérifiez que PostgreSQL et Nginx sont en cours d’exécution :
sudo systemctl status postgresql
sudo systemctl status nginxLes deux services doivent afficher active (running).
4. Télécharger et installer Mattermost
Étape 1 : Télécharger la dernière version de Mattermost
Visitez la page officielle des versions de Mattermost pour trouver la dernière version stable. Utilisez wget pour la télécharger directement sur votre serveur :
wget https://releases.mattermost.com/9.5.0/mattermost-team-9.5.0-linux-amd64.tar.gz> Remarque : Remplacez 9.5.0 par le numéro de version disponible le plus récent. Utilisez toujours la version stable la plus récente pour les correctifs de sécurité et les nouvelles fonctionnalités.
Étape 2 : Extraire l’archive
tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gzÉtape 3 : Déplacer Mattermost vers le répertoire système
Déplacez le dossier extrait vers /opt, qui est l’emplacement standard Linux pour les logiciels tiers optionnels :
sudo mv mattermost /opt/mattermostÉtape 4 : Créer un utilisateur système Mattermost dédié
L’exécution de Mattermost en tant qu’utilisateur dédié sans privilèges est une pratique de sécurité critique :
sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermostÉtape 5 : Créer le répertoire de données et définir les autorisations
sudo mkdir -p /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R 750 /opt/mattermost5. Configurer la base de données PostgreSQL
Mattermost nécessite une base de données PostgreSQL dédiée et un utilisateur. Suivez ces étapes avec attention.
Étape 1 : Passer à l’utilisateur système PostgreSQL
sudo -i -u postgresÉtape 2 : Ouvrir le shell interactif PostgreSQL
psqlÉtape 3 : Créer la base de données, l’utilisateur et accorder les privilèges
Exécutez les commandes SQL suivantes une par une :
CREATE DATABASE mattermost_db;
CREATE USER mattermost WITH PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost;> Note de sécurité : Remplacez YourStrongPassword123! par un mot de passe fort et unique. Utilisez un gestionnaire de mots de passe pour le générer et le stocker de manière sécurisée.
Pour PostgreSQL 15 et versions ultérieures, vous devez également accorder les privilèges de schéma :
c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;Étape 4 : Quitter le shell PostgreSQL et revenir à votre utilisateur
q
exit6. Configurer Mattermost
Étape 1 : Ouvrir le fichier de configuration Mattermost
sudo nano /opt/mattermost/config/config.jsonÉtape 2 : Mettre à jour les paramètres de connexion à la base de données
Localisez le bloc SqlSettings et mettez-le à jour avec vos identifiants PostgreSQL :
"SqlSettings": {
"DriverName": "postgres",
"DataSource": "postgres://mattermost:YourStrongPassword123!@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",
"DataSourceReplicas": [],
"DataSourceSearchReplicas": [],
"MaxIdleConns": 20,
"ConnMaxLifetimeMilliseconds": 3600000,
"MaxOpenConns": 300,
"Trace": false,
"AtRestEncryptKey": "",
"QueryTimeout": 30
}Étape 3 : Configurer l’URL du site
Trouvez le bloc ServiceSettings et définissez votre domaine :
"ServiceSettings": {
"SiteURL": "https://your_domain.com",
...
}Remplacez your_domain.com par le nom de domaine réel.
Étape 4 : Enregistrer et quitter
Appuyez sur Ctrl+X, puis Y, puis Enter pour enregistrer et fermer le fichier.
7. Créer un Service Systemd
Exécuter Mattermost en tant que service systemd garantit qu’il démarre automatiquement au boot et redémarre en cas d’échec — essentiel pour tout déploiement en production.
Étape 1 : Créer le Fichier de Service
sudo nano /etc/systemd/system/mattermost.serviceÉtape 2 : Ajouter la Configuration du Service
Collez le contenu suivant :
[Unit]
Description=Mattermost Team Messaging Server
After=network.target postgresql.service
Wants=postgresql.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=multi-user.targetÉtape 3 : Activer et Démarrer le Service Mattermost
sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermostÉtape 4 : Vérifier que le Service est en Cours d’Exécution
sudo systemctl status mattermostVous devriez voir active (running). Mattermost écoute sur le port 8065 par défaut.
8. Configurer Nginx en tant que proxy inverse
Nginx agit comme un proxy inverse, redirigeant le trafic HTTP/HTTPS entrant des ports 80/443 vers le port interne 8065 de Mattermost. Cela active également la prise en charge de WebSocket, que Mattermost nécessite pour la messagerie en temps réel.
Étape 1 : Créer le fichier de configuration Nginx
sudo nano /etc/nginx/sites-available/mattermostÉtape 2 : Ajouter la configuration du proxy inverse
upstream backend {
server localhost:8065;
keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
listen 80;
server_name your_domain.com;
location ~ /api/v[0-9]+/(users/)?websocket$ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 50M;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_pass http://backend;
}
location / {
client_max_body_size 50M;
proxy_set_header Connection "";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_cache mattermost_cache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale timeout;
proxy_cache_lock on;
proxy_pass http://backend;
}
}Remplacez your_domain.com par votre nom de domaine réel.
Étape 3 : Activer la configuration du site
sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/Étape 4 : Tester la configuration Nginx pour les erreurs de syntaxe
sudo nginx -tRésultat attendu :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulÉtape 5 : Redémarrer Nginx
sudo systemctl restart nginx9. Sécuriser Mattermost avec SSL (HTTPS)
L’exécution de Mattermost sur HTTPS est obligatoire pour tout environnement de production. Il chiffre toutes les communications entre les utilisateurs et votre serveur, protégeant les identifiants et les messages contre l’interception.
> SSL Simplifié : AlexHost propose des Certificats SSL abordables pour tous les types de sites web et d’applications. Vous pouvez également utiliser la méthode gratuite Let’s Encrypt ci-dessous.
Étape 1 : Obtenir un Certificat SSL Gratuit avec Certbot
sudo certbot --nginx -d your_domain.comCertbot effectuera automatiquement :
- Vérifier la propriété du domaine
- Émettre un certificat Let’s Encrypt
- Modifier votre configuration Nginx pour activer HTTPS
- Configurer le renouvellement automatique du certificat
Étape 2 : Vérifier le Renouvellement Automatique
sudo certbot renew --dry-runÉtape 3 : Redémarrer Nginx
sudo systemctl restart nginxVotre instance Mattermost est maintenant accessible à https://your_domain.com.
10. Vérification finale
Vérifier que tous les services sont en cours d’exécution
sudo systemctl status postgresql
sudo systemctl status mattermost
sudo systemctl status nginxTester Mattermost directement sur le port 8065
curl -I http://localhost:8065Vous devriez recevoir une réponse HTTP 200 OK ou une redirection.
Terminer la configuration basée sur le web
- Ouvrez votre navigateur et accédez à
https://your_domain.com - Vous serez accueilli par l’assistant de configuration de Mattermost
- Créez votre compte administrateur
- Configurez votre première équipe et votre espace de travail
- Invitez les membres de l’équipe et commencez à collaborer
Dépannage des problèmes courants
| Problème | Cause probable | Solution |
|---|---|---|
| Le service Mattermost ne démarre pas | Identifiants de base de données incorrects dans config.json | Vérifiez la chaîne DataSource dans SqlSettings |
| 502 Bad Gateway dans Nginx | Mattermost n’est pas en cours d’exécution sur le port 8065 | Exécutez sudo systemctl restart mattermost |
| Erreurs de connexion WebSocket | En-têtes de proxy WebSocket manquants dans Nginx | Vérifiez le bloc de localisation WebSocket dans la configuration Nginx |
| Erreurs de certificat SSL | Domaine non pointé vers l’IP du serveur | Mettez à jour l’enregistrement DNS A et attendez la propagation |
| Connexion à la base de données refusée | PostgreSQL n’est pas en cours d’exécution | Exécutez sudo systemctl start postgresql |
Pourquoi choisir un hébergeur fiable pour Mattermost ?
Les performances et la fiabilité de votre instance Mattermost dépendent fortement de l’infrastructure sous-jacente. Pour les petites et moyennes équipes, un VPS bien configuré est le choix idéal. Pour les organisations plus grandes avec des volumes de messages élevés, envisagez une mise à niveau vers un Serveur Dédié pour des performances maximales, une isolation et un contrôle total.
Si vous avez besoin d’un nom de domaine pour votre déploiement Mattermost, AlexHost propose des Enregistrements de Domaine compétitifs avec une gestion DNS complète. Et si vous exécutez plusieurs services aux côtés de Mattermost, l’Hébergement Web Partagé ou un VPS avec cPanel peuvent simplifier la gestion avec un panneau de contrôle intuitif.
Résumé
Vous avez installé et configuré avec succès Mattermost sur Ubuntu avec :
- ✅ PostgreSQL comme base de données backend
- ✅ Nginx comme proxy inverse de qualité production avec support WebSocket
- ✅ Let’s Encrypt SSL pour les connexions HTTPS chiffrées
- ✅ Un service systemd pour le démarrage automatique et la récupération en cas de panne
- ✅ Des permissions de fichiers appropriées et un utilisateur système dédié pour la sécurité
Mattermost est maintenant prêt à servir de hub de communication privé et auto-hébergé pour votre équipe — entièrement sous votre contrôle, sans aucune donnée quittant votre infrastructure.
sur tous les services d'hébergement