Labs Veille A propos Explorer les labs →
Systèmes intermédiaire Mis à jour 14 mars 2026 mattermost postgresql debian ubuntu collaboration self-hosted

Mattermost : Installation sur Debian/Ubuntu

Guide d'installation complet de Mattermost, une plateforme de messagerie collaborative open source, l'alternative self-hosted à Slack

K
Komi Kpodohouin
Voir tous les labs →
Publié le | 5 min de lecture | ~45min

Mattermost est une plateforme de collaboration open source conçue pour les environnements qui exigent le contrôle total des données et des communications. Utilisée comme messagerie instantanée interne en entreprise, elle offre messagerie persistante, canaux structurés, appels audio, automatisation de workflows et intégrations DevSecOps et ITSM avec GitHub, GitLab, Jira, PagerDuty ou ServiceNow, le tout déployé sur votre propre infrastructure. Adoptée par des organisations comme la NASA, l’US Air Force ou Samsung, c’est la référence pour les équipes techniques et les organisations soumises à des exigences de conformité et de souveraineté numérique.


Objectif

Déployer Mattermost Server sur Debian/Ubuntu avec PostgreSQL comme base de données.

Systèmes cibles : Debian 12 ou Ubuntu 22.04+
Niveau requis : Administrateur système (sudo)


Prérequis

Caractéristiques minimales du serveur

Données issues de la documentation officielle Mattermost. Les besoins en RAM peuvent augmenter selon l’activité de partage de fichiers (taille max par défaut : 50 Mo).

RessourceJusqu’à 1 000 utilisateursJusqu’à 2 000 utilisateurs
CPU1 vCPU2 vCPU
RAM2 Go4 Go
Architecture64-bit x8664-bit x86
OSUbuntu 22.04+ / Debian Buster+Ubuntu 22.04+ / Debian Buster+
Base de donnéesPostgreSQL 14.0+PostgreSQL 14.0+
Stockage de base600 Mo à 800 Mo (OS + BDD)600 Mo à 800 Mo (OS + BDD)
Stockage fichiersSelon usage (5 à 25 Mo/utilisateur/mois)Selon usage (5 à 25 Mo/utilisateur/mois)

Vérifications logicielles

PrérequisCommande de vérification
Accès sudo ou rootsudo -v
Connexion Internet activeping -c 2 google.com
Port 8065 disponibless -tlnp | grep 8065

Mise à jour système

sudo apt update && sudo apt upgrade -y

Utilitaires requis

sudo apt install curl gnupg2 software-properties-common bash-completion nano -y

Dépôt officiel Mattermost

curl -sL https://deb.packages.mattermost.com/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/mattermost-archive-keyring.gpg > /dev/null
curl -o- https://deb.packages.mattermost.com/repo-setup.sh | sudo bash -s mattermost
sudo apt update

Installation Mattermost

sudo apt install mattermost -y

Installation PostgreSQL

sudo apt install postgresql postgresql-contrib -y

Vérifier que le service est actif et activé au démarrage :

sudo systemctl status postgresql
PostgreSQL actif et enabled au démarrage
PostgreSQL actif et enabled au démarrage

PostgreSQL : création de la base

sudo -u postgres psql
Évite les mots de passe contenant @. Ce caractère est interprété comme séparateur dans les chaînes de connexion PostgreSQL et casse le DataSource silencieusement. Utilise un mot de passe robuste de ce type : Xk9#mP2vLq8nRt5w

Créer la base de données et l’utilisateur :

CREATE DATABASE mattermost_db;
CREATE USER mattermost_user WITH PASSWORD 'VotreMotDePasse';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost_user;
ALTER DATABASE mattermost_db OWNER TO mattermost_user;
Remplace mattermost_db, mattermost_user et VotreMotDePasse par les valeurs de ton choix. Ces trois éléments doivent rester cohérents dans toutes les étapes suivantes.

Se connecter à la base, puis appliquer les privilèges sur le schéma :

\c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO mattermost_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO mattermost_user;
\q
Remplace mattermost_db et mattermost_user par les noms définis à l’étape précédente.

systemd : dépendance PostgreSQL

Ne pas modifier /lib/systemd/system/mattermost.service directement. Utiliser un fichier d’override qui survit aux mises à jour :

sudo mkdir -p /etc/systemd/system/mattermost.service.d/
sudo tee /etc/systemd/system/mattermost.service.d/postgresql-dep.conf <<EOF
[Unit]
After=postgresql.service
BindsTo=postgresql.service
EOF
BindsTo force Mattermost à s’arrêter si PostgreSQL s’arrête. After garantit l’ordre de démarrage. Sans ça, Mattermost peut tenter de démarrer avant que la base soit prête et échouer silencieusement.
sudo systemctl daemon-reload

Configuration Mattermost

sudo -u mattermost cp /opt/mattermost/config/config.defaults.json /opt/mattermost/config/config.json
sudo chmod 600 /opt/mattermost/config/config.json
sudo nano /opt/mattermost/config/config.json

Rechercher DriverName avec Ctrl+W, vérifier que la valeur est postgres :

"DriverName": "postgres",

Rechercher DataSource et remplacer avec les identifiants créés plus haut :

"DataSource": "postgres://mattermost_user:VotreMotDePasse@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",
Remplace mattermost_user, VotreMotDePasse et mattermost_db par les valeurs définies à l’étape PostgreSQL. Le nom d’utilisateur et le nom de la base doivent correspondre exactement à ce qui a été créé. Une simple faute de frappe ici cause une erreur silencieuse au démarrage.

Rechercher SiteURL et définir l’adresse du serveur :

"SiteURL": "http://IP_SERVEUR:8065",

Sauvegarder : Ctrl+X, Y, Entrée.


Démarrage des services

sudo systemctl enable postgresql mattermost
sudo systemctl start postgresql mattermost
sudo systemctl status mattermost
Service Mattermost actif (running)
Service Mattermost actif (running)

Si le service échoue, consulter l’erreur exacte :

journalctl -xeu mattermost.service --no-pager | grep -E "error|Error|failed" | head -20

Accéder à Mattermost

http://IP_SERVEUR:8065

L’assistant de configuration s’affiche pour créer le compte administrateur et configurer l’équipe.


Démonstration : Mon déploiement complet

Enregistrement de la procédure complète réalisée sur un serveur Ubuntu 22.04.

▶ Voir mon déploiement complet sur asciinema.org


Captures post déploiement de l’interface de connexion


Dépannage

sudo: unknown user postgres : PostgreSQL n’est pas installé ou l’installation a échoué. Réinstaller avec sudo apt purge postgresql* -y && sudo apt install postgresql postgresql-contrib -y.

Service Mattermost ne démarre pas : Consulter les logs avec sudo journalctl -u mattermost -f. Vérifier le DataSource dans config.json. Le nom d’utilisateur, le mot de passe et le nom de la base doivent correspondre exactement à ce qui a été créé dans PostgreSQL.

Port 8065 inaccessible : Ouvrir le port avec sudo ufw allow 8065.

PostgreSQL ne démarre pas avant Mattermost : Vérifier que le fichier postgresql-dep.conf existe dans /etc/systemd/system/mattermost.service.d/.