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.
Table des matières
- Prérequis
- Mettre à jour votre système
- Installer les dépendances requises
- Télécharger et installer Mattermost
- Configurer la base de données PostgreSQL
- Configurer Mattermost
- Créer un service Systemd
- Configurer Nginx en tant que proxy inverse
- Sécuriser Mattermost avec SSL (HTTPS)
- Vérification finale
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 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 le temps d’activité 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 paquets 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 stable le plus récent disponible. 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é et non privilégié est une meilleure 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 permissions
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 et un utilisateur dédiés. Suivez ces étapes attentivement.
Étape 1 : Basculer vers 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;> Remarque 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 en toute sécurité.
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 votre 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
L’exécution de Mattermost en tant que service systemd garantit qu’il démarre automatiquement au démarrage 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, transférant le trafic HTTP/HTTPS entrant des ports 80/443 vers le port interne 8065 de Mattermost. Cela permet également le support 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 facile : AlexHost offre des certificats SSL abordables pour tous les types de sites Web et d’applications. Sinon, utilisez la méthode Let’s Encrypt gratuite 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 Mattermost
- Créez votre compte administrateur
- Configurez votre première équipe et 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 |
