Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| deployer_un_serveur_mattermost [2023/11/01 15:01] – superadmin | deployer_un_serveur_mattermost [2023/11/01 20:14] (Version actuelle) – [Gestion des utilisateurs] superadmin | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ===== Introduction ===== | ===== Introduction ===== | ||
| - | Mattermost est un système de messagerie instantanée open source conçu pour un usage privé. Ce tutoriel explique le mettre en place un afin d' | + | Mattermost est un système de messagerie instantanée open source conçu pour un usage privé. Ce tutoriel explique le mettre en place un afin d' |
| Contrairement à Microsoft Teams ou Slack, Mattermost ne supporte que les messages texte, et non les appels audio ou vidéo. Il a néanmoins l' | Contrairement à Microsoft Teams ou Slack, Mattermost ne supporte que les messages texte, et non les appels audio ou vidéo. Il a néanmoins l' | ||
| Ligne 18: | Ligne 18: | ||
| Nous aurons besoin de : | Nous aurons besoin de : | ||
| - | * Une machine (virtuelle ou physique) sous Linux (de préférence Debian 12 qui sera utilisé dans ce tutoriel) | + | * Une machine (virtuelle ou physique) sous Linux (de préférence Debian 12 qui sera utilisé dans ce tutoriel) |
| * Deux machines (virtuelles ou physiques) sous n' | * Deux machines (virtuelles ou physiques) sous n' | ||
| Ligne 46: | Ligne 46: | ||
| </ | </ | ||
| - | :!: Attention à bien remplacer '' | + | :!: Attention à bien remplacer '' |
| - | === Sous-étape 1.1 === | + | Taper '' |
| - | === Sous-étape 1.2 === | + | La configuration de la base de données est réalisée. Passons à l' |
| - | ==== Etape 2 ==== | + | ==== Installation et configuration du serveur |
| - | === Sous-étape 2.1 === | + | === Installation |
| - | === Sous-étape 2.2 === | + | Télécharger Mattermost sur le serveur au format tarball : |
| - | ==== Etape 3 ==== | + | < |
| - | ==== Vérifications | + | :!: L'URL de l' |
| + | |||
| + | Décompresser l' | ||
| + | |||
| + | < | ||
| + | |||
| + | Ajouter un répertoire '' | ||
| + | |||
| + | < | ||
| + | |||
| + | Et créer un utilisateur système qui aura tous les droits sur le répertoire d' | ||
| + | |||
| + | < | ||
| + | chown -R mattermost: | ||
| + | chmod -R g+w / | ||
| + | </ | ||
| + | |||
| + | === Configuration | ||
| + | |||
| + | Maintenant que Mattermost est installé, éditer sa configuration : | ||
| + | |||
| + | < | ||
| + | |||
| + | C'est là que sont stockés tous les paramètres du serveur. | ||
| + | |||
| + | D' | ||
| + | |||
| + | < | ||
| + | |||
| + | Changer les paramètres SQL pour correspondre à la BDD que l'on a préparée avant : | ||
| + | |||
| + | < | ||
| + | " | ||
| + | " | ||
| + | </ | ||
| + | |||
| + | Puis adapter les autres paramètres comme nécessaire. | ||
| + | |||
| + | __Explication de certains paramètres :__ | ||
| + | |||
| + | * __ServiceSettings__ | ||
| + | * | ||
| + | * __SqlSettings__ | ||
| + | * | ||
| + | * | ||
| + | * __FileSettings__ | ||
| + | * | ||
| + | * __PluginSettings__ | ||
| + | * | ||
| + | * | ||
| + | |||
| + | === Création du service === | ||
| + | |||
| + | On va désormais créer le service Linux qui exécutera Mattermost, via systemd : | ||
| + | |||
| + | < | ||
| + | |||
| + | Y insérer ceci : | ||
| + | |||
| + | < | ||
| + | Description=Mattermost | ||
| + | After=network.target | ||
| + | After=mysql.service | ||
| + | Requires=mysql.service | ||
| + | |||
| + | [Service] | ||
| + | Type=notify | ||
| + | User=mattermost | ||
| + | Group=mattermost | ||
| + | ExecStart=/ | ||
| + | TimeoutStartSec=3600 | ||
| + | Restart=always | ||
| + | RestartSec=10 | ||
| + | WorkingDirectory=/ | ||
| + | LimitNOFILE=49152 | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=mariadb.service | ||
| + | </ | ||
| + | |||
| + | Ensuite recharger systemd et activer le service au lancement de la machine : | ||
| + | |||
| + | < | ||
| + | systemctl enable mattermost</ | ||
| + | |||
| + | On peut enfin démarrer Mattermost par le biais de ce service : | ||
| + | < | ||
| + | |||
| + | Vérifier que le service a bien démarré : | ||
| + | |||
| + | < | ||
| + | |||
| + | Il doit être dans l' | ||
| + | |||
| + | La configuration de Mattermost est terminée. Penser à configurer les enregistrements DNS nécessaire pour joindre le serveur via son nom de domaine (sauf si on utilise une IP). | ||
| + | |||
| + | Pour vérifier que c'est fonctionnel, | ||
| + | {{ :: | ||
| + | |||
| + | Pour créer un instance, il faut s' | ||
| + | Pour la gestion des utilisateurs, | ||
| + | |||
| + | === Configuration du serveur Web === | ||
| + | |||
| + | Dans cette partie, on configure la réécriture d'URL pour sécuriser les usages extérieurs. Si l' | ||
| + | |||
| + | Ici, on utilisera Apache, mais il est possible d'en utiliser un autre (Caddy, Nginx...). | ||
| + | |||
| + | Installer d' | ||
| + | < | ||
| + | |||
| + | Ensuite, on active les modules apache suivants : | ||
| + | < | ||
| + | a2enmod rewrite | ||
| + | a2enmod expires | ||
| + | a2enmod headers | ||
| + | a2enmod http2 | ||
| + | a2enmod proxy | ||
| + | a2enmod proxy_http | ||
| + | a2enmod proxy_wstunnel | ||
| + | </ | ||
| + | |||
| + | Puis, créer un nouveau VHost (site virtuel) : | ||
| + | < | ||
| + | |||
| + | Insérer dans le fichier le code suivant, en prenant soin de modifier les directives '' | ||
| + | |||
| + | < | ||
| + | < | ||
| + | ServerAdmin webmaster@localhost #adresse mail administrateur | ||
| + | ServerName 192.168.1.201 #URL de l' | ||
| + | |||
| + | ProxyPreserveHost On | ||
| + | |||
| + | RewriteEngine On | ||
| + | RewriteCond %{REQUEST_URI} / | ||
| + | RewriteCond %{HTTP: | ||
| + | RewriteCond %{HTTP: | ||
| + | RewriteRule .* ws:// | ||
| + | |||
| + | < | ||
| + | Require all granted | ||
| + | ProxyPass http:// | ||
| + | ProxyPassReverse http:// | ||
| + | ProxyPassReverseCookieDomain 127.0.0.1 192.168.1.201 #URL de l' | ||
| + | </ | ||
| + | |||
| + | RewriteCond %{SERVER_NAME} =192.168.1.201 #URL de l' | ||
| + | RewriteRule ^ https:// | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Et activer le site comme ceci : | ||
| + | < | ||
| + | systemctl reload apache2</ | ||
| + | |||
| + | On peut aussi installer Certbot pour activer SSL, dans le cas où on aurait besoin d'un certificat SSL pour un serveur accessible depuis l' | ||
| + | |||
| + | < | ||
| + | |||
| + | :!: Certbot ne permet de générer des certificats SSL que pour des noms de domaines. Le site doit être accessible depuis Internet pour que ça fonctionne. | ||
| + | |||
| + | ==== Rétention des données ==== | ||
| + | |||
| + | Dans le cas où on Mattermost serait mis en place dans une entreprise, on peut automatiser la suppression des anciens messages à l'aide d'une requêtes SQL toute simple : | ||
| + | |||
| + | < | ||
| + | |||
| + | Ici, la commande supprime tous les messages de plus de 30 jours. Évidemment, | ||
| + | |||
| + | ==== Gestion des utilisateurs ==== | ||
| + | |||
| + | La commande pour gérer les utilisateurs sous Mattermost est : | ||
| + | < | ||
| + | |||
| + | Pour cela, il faut d' | ||
| + | < | ||
| + | |||
| + | Indiquer un nom à la connexion (n' | ||
| + | |||
| + | Créer un utilisateur : | ||
| + | < | ||
| + | |||
| + | :!: On peut rajouter les options suivantes si besoin : | ||
| + | * --system-admin : pour donner des droits d' | ||
| + | * --email-verified : pour ignorer la vérification de l' | ||
| ===== Sources ===== | ===== Sources ===== | ||