{{indexmenu_n>5}}
# Gestion des plugins
La documentation officielle des plugins [est disponible ici](https://docs.mattermost.com/administration/plugins.html).
## Installer et mettre à jour un plugin
Un plugin ne doit être installé que si le code source a été **audité**, car le plugin aura accès à l'ensemble du service, y compris les mots de passe de la base de données, et est par conséquent capable d'exfiltrer des informations personnelles.
Il existe trois manières d'installer et d'activer des plugins.
### Pré-installés
Certains plugins sont pré-installés (Jira, Zoom) ; il s'agit de plugins officiels et stables, en revanche ils sont désactivés par défaut.
La plupart du temps, ces plugins ne nous intéressent pas mais il n'est pas possible ni vraiment utile de les supprimer. Leur mise à jour se fait à travers les mises à jour de Mattermost.
### Sur la place de marché
Mattermost maintient une [place de marché des plugins](https://github.com/mattermost/mattermost-marketplace). Cette place de marché contient essentiellement :
* Des plugins développés par l'équipe de Mattermost
* Des plugins développés par la communauté mais vérifiés par l'équipe de Mattermost
Ces plugins sont considérés comme relativement stables et sécurisés.
L'utilisation de la place de marché est sujette à la télémétrie de Mattermost, mais elle est désactivée chez nous.
Lorsqu'elle est activée dans la console système, le menu y donne accès :
{{ :technique:adminserv:mattermost:mattermost_marketplace.png?200 |}}
Depuis la place de marché, il est possible d'installer des plugins depuis l'interface et de mettre à jour les plugins pris en charge. L'exemple ci-dessus montre bien les différences :
{{ :technique:adminserv:mattermost:mattermost_plugins_marketplace.png?600 |}}
* Jitsi, Matterpoll et Welcome Bot sont des plugins disponibles sur la place de marché.
* Matterpoll est maintenu par la communauté, Jitsi est maintenu par Mattermost **et** en version Beta, le Welcome Bot est maintenu par Mattermost.
* Welcome Bot peut être mis à jour directement depuis l'interface.
Les plugins installés sont persistants au fur et à mesure des mises à jours, car les plugins sont stockés dans un [[technique:docker:general:volumes|volume Docker]].
Le plugin Spoiler est listé, mais un tag `Local` lui est accroché : il n'est pas directement gérable depuis la place de marché (voir ci-dessous).
### Manuellement
Les plugins qui ne sont pas disponibles sur la place de marché ou pré-installés peuvent s'installer manuellement.
Il faut pour ce faire télécharger une archive du plugin, souvent une release sur Github.
Exemple pour le plugin spoiler : https://github.com/moussetc/mattermost-plugin-spoiler/releases. On récupérera l'archive au format `.tar.gz`.
Il y a ensuite deux manière de l'installer :
#### Depuis la console système
On peut importer l'archive depuis la catégorie "Gestion des plugins" de la Console Système :
{{ :technique:adminserv:mattermost:mattermost_manual_plugin.png?600 |}}
Autrement, on peut copier l'archive dans le volume correspondant aux plugins de Mattermost. Pour ce faire, on se rend dans le conteneur Mattermost et on extrait l'archive dans le dossier `/mattermost/plugins`, puis on redémarre le conteneur.
La mise un jour d'un plugin installé manuellement ne peut se faire qu'en suivant la procédure d'installation : on remplace les anciens fichiers par les nouveaux.
## Configuration des plugins
### Dans la console système
La vaste majorité des plugins sont paramétrables graphiquement, depuis la catégorie plugins de la Console Système. Exemple pour Matterpoll :
{{ :technique:adminserv:mattermost:mattermost_matterpoll.png?600 |}}
Dans ce cas, les paramètres sont enregistrés dans le fichier `config.json` de façon transparente.
### Dans le fichier config.json
Certains plugins demandent une modification manuelle du fichier `config.json`.
C'est le cas du [Welcome Bot](https://github.com/mattermost/mattermost-plugin-welcomebot), où les messages d'accueil ne sont pas configurables dans l'interface.
Dans ce cas, on se rendra dans le conteneur Mattermost et on éditera le fichier `/mattermost/config/config.json`.
Une erreur de syntaxe empêchera Mattermost de redémarrer, et provoquera un downtime important. Il est préférable de tester ses modifications sur une machine de test.
Un redémarrage du conteneur est nécessaire pour prendre en compte ces modifications.
### Via une commande dédiée
Certains plugins configurables uniquement via le fichier `config.json` proposent également des commandes qui aident à la configuration.
C'est le cas du [Welcome Bot](https://github.com/mattermost/mattermost-plugin-welcomebot), qui propose [des commandes](https://github.com/mattermost/mattermost-plugin-welcomebot/blob/master/README.md#usage) pour définir les messages d'accueil d'une équipe en particulier, via des commandes accessibles aux administrateurices d'équipe.
Cette méthode est à préférer si elle est disponible car elle évite de devoir modifier le fichier `config.json` à la main et donc de redémarrer le conteneur/risquer des erreurs.