Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Administration Linux

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 -y

Redémarrez le serveur si une mise à jour du noyau a été appliquée :

sudo reboot

3. 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-nginx

Vérifiez que PostgreSQL et Nginx sont en cours d’exécution :

sudo systemctl status postgresql
sudo systemctl status nginx

Les 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/mattermost

5. 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
exit

6. 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 mattermost

Vous 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 -t

Ré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 nginx

9. 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.com

Certbot 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 nginx

Votre 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 nginx

Tester Mattermost directement sur le port 8065

curl -I http://localhost:8065

Vous devriez recevoir une réponse HTTP 200 OK ou une redirection.

Terminer la configuration basée sur le web

  1. Ouvrez votre navigateur et accédez à https://your_domain.com
  2. Vous serez accueilli par l’assistant de configuration de Mattermost
  3. Créez votre compte administrateur
  4. Configurez votre première équipe et votre espace de travail
  5. Invitez les membres de l’équipe et commencez à collaborer

Dépannage des problèmes courants

ProblèmeCause probableSolution
Le service Mattermost ne démarre pasIdentifiants de base de données incorrects dans config.jsonVérifiez la chaîne DataSource dans SqlSettings
502 Bad Gateway dans NginxMattermost n’est pas en cours d’exécution sur le port 8065Exécutez sudo systemctl restart mattermost
Erreurs de connexion WebSocketEn-têtes de proxy WebSocket manquants dans NginxVérifiez le bloc de localisation WebSocket dans la configuration Nginx
Erreurs de certificat SSLDomaine non pointé vers l’IP du serveurMettez à jour l’enregistrement DNS A et attendez la propagation
Connexion à la base de données refuséePostgreSQL n’est pas en cours d’exécutionExé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.