mirroir readonly du Gitit wiki.evolix.org (attention, ne rien commiter/merger sur ce dépôt) https://wiki.evolix.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.6 KiB

categories title
chat Howto Mattermost

Mattermost est un logiciel libre de discussion instantanées. C’est une alternative open source à Slack.

Installation

Pré-requis

Une machine avec Debian 9 (Stretch) avec les logiciels suivants :

  • Nginx - Servira de reverse proxy web
  • MySQL - Base de donnée pour l’application

Mise en place

Tout d’abord, on a besoin :

  • D’une base MySQL avec un utilisateur - login/base : mattermost / pass : PASSWORD
  • D’un utilisateur unix : mattermost

On récupère donc la dernière version sur https://mattermost.com/download/ (actuellement la 5.10.0) et on déroule :

# su - mattermost
$ wget https://releases.mattermost.com/5.10.0/mattermost-5.10.0-linux-amd64.tar.gz
$ tar mattermost-5.10.0-linux-amd64.tar.gz
$ cd mattermost
$ mkdir data

Il faut ensuite ajuster la configuration à ses besoins. Elle se trouve dans le fichier config/config.json. C’est là qu’il faut aussi paramétrer la connexion à la base de donnée MySQL. Celle-ci se règle via la valeur DataSource dans SqlSettings. Dans notre exemple, on met la valeur suivante (à adapter) mattermost:PASSWORD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8

Enfin, il ne reste plus qu'à mettre en place l’unité systemd :

[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
Requires=postgresql.service

[Service]
Type=notify
Restart=always
WorkingDirectory=/home/mattermost/mattermost
ExecStart=/home/mattermost/mattermost/bin/mattermost
TimeoutStartSec=3600
LimitNOFILE=49152
RestartSec=10
User=mattermost
Group=mattermost

[Install]
WantedBy=multi-user.target

Par défaut, Mattermost écoute sur le port 8065. En s’y connectant, on peut créer le premier compte qui sera automatiquement administrateur

On peut aussi configurer nginx comme reverse proxy en s’inspirant de la configuration conseillée dans la documentation officielle.

Note: La configuration proposée par les développeurs s’appuie sur le module de cache de nginx. Ce module permet de décharger de certaines requêtes le service mattermost. Mais il peut compliquer les test lors de soucis sur l’interface web.

upstream backend {
   server 127.0.0.1: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;
   listen [::]:80;
   listen 443 ssl;
   listen [::]:443 ssl;

   server_name mattermost.example.com;

   ssl_certificate /etc/ssl/certs/mattermost.example.com.pem;
   ssl_certificate_key /etc/ssl/private/mattermost.example.com.pem;

   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;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       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_http_version 1.1;
       proxy_pass http://backend;
   }
}

Pour aller plus loin, il y a la documentation

Mise à jour

Voir la documentation officielle pour référence.

TODO

FAQ / Plomberie

Supprimer une équipe

$ /home/mattermost/mattermost/bin/mattermost -c /home/mattermost/config/config.json team <NomÉquipe> delete