Outils pour utilisateurs

Outils du site


mattermost_un_container_lxc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
mattermost_un_container_lxc [2021/02/24 11:34] Benjamin Labomediamattermost_un_container_lxc [2023/10/11 21:04] (Version actuelle) – [Installer un container LXC sur le serveur hote] Labomedia
Ligne 5: Ligne 5:
  
  
-===== Installation de Mattermost dans un container LXC ===== +===== Installer un container LXC sur le serveur hote =====
-==== On commence par installer un container sur le serveur hote ====+
   lxc-create -t download -n tlcvl -- -d debian -r buster -a amd64   lxc-create -t download -n tlcvl -- -d debian -r buster -a amd64
-On démarre le container et on regarde son ip+On démarre le container et on regarde son IP :
   lxc-start tlcvl   lxc-start tlcvl
   lxc-ls -f   lxc-ls -f
   NAME  STATE   AUTOSTART GROUPS IPV4       IPV6 UNPRIVILEGED    NAME  STATE   AUTOSTART GROUPS IPV4       IPV6 UNPRIVILEGED 
-  tlcvl RUNNING 0              10.0.3.235 -    false+  tlcvl RUNNING 0              10.0.3.200 -    false
 On fait en sorte que le container démarre tout seul en ajoutant à la fin du fichier On fait en sorte que le container démarre tout seul en ajoutant à la fin du fichier
   nano /var/lib/lxc/tlcvl/config   nano /var/lib/lxc/tlcvl/config
   # Autostart   # Autostart
   lxc.start.auto = 1   lxc.start.auto = 1
-On rentre dans le container pour installer Mattermost+On rentre dans le container pour installer Mattermost, mais avant, on install quelques outils pratiques.
   lxc-attach tlcvl   lxc-attach tlcvl
   root@tlcvl   root@tlcvl
Ligne 23: Ligne 22:
   apt install wget curl nano iotop nload htop locate curl gnupg   apt install wget curl nano iotop nload htop locate curl gnupg
  
-==== Installation bdd et Mattermost ====+===== Installation bdd et Mattermost =====
 Ensuite il s'agit de suivre la [[https://docs.mattermost.com/install/install-debian.html#installing-debian-buster|procédure d'installation décrite ici]] : Ensuite il s'agit de suivre la [[https://docs.mattermost.com/install/install-debian.html#installing-debian-buster|procédure d'installation décrite ici]] :
  
Ligne 76: Ligne 75:
         "FeedbackEmail": "febot@futuretic.fr",         "FeedbackEmail": "febot@futuretic.fr",
         "ReplyToAddress": "febot@futuretic.fr",         "ReplyToAddress": "febot@futuretic.fr",
-        "FeedbackOrganization": "tl-cvl.futuretic.fr",+        "FeedbackOrganization": "mm.mondomaine.org",
         "EnableSMTPAuth": true,         "EnableSMTPAuth": true,
         "SMTPUsername": "febot@futuretic.fr",         "SMTPUsername": "febot@futuretic.fr",
Ligne 133: Ligne 132:
   systemctl enable mattermost.service   systemctl enable mattermost.service
  
-==== Configuration de Mattermost ====+On peut désormais sortir du container pour configurer le vhost proxy 
 +  root@tlcvl ~ #exit
  
 +===== Configuration du vhost sur le serveur hote pour proxy du traffic vers le container =====
 +On génère déjà un certificat avec certbot avec un vhost temporaire qui contient l'adresse du serveur et pointe vers /var/www/html
 +  certbot certonly --http-01-address 135.181.129.123 -d mm.mondomaine.org --verbose
 +Une fois le certificat généré, config du vhost, on redirige les requêtes sur port 80 vers 443 et
 +  nano /etc/apache2/sites-available/mm.mondomaine.org-le-ssl.conf
 +<file bash mm.mondomaine.org-le-ssl.conf>
 +<IfModule mod_ssl.c>
 +
 +        <VirtualHost *:443>
 +
 +                ServerAdmin     moi@mondomaine.org
 +                ServerName      mm.mondomaine.org
 +
 +                # Headers for security
 +                <IfModule mod_headers.c>
 +                        Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
 +                        Header set X-XSS-Protection "1; mode=block"
 +                        Header set X-Frame-Options "sameorigin"
 +                        Header set X-Content-Type-Options "nosniff"
 +                </IfModule>
 +
 +                # SSL config
 +                SSLEngine on
 +                SSLProxyEngine On
 +                # ajout suite a default ssl handshake et suite à AH01097: pass request body failed
 +                SSLProxyVerify none
 +                SSLProxyCheckPeerCN off
 +                SSLProxyCheckPeerName off
 +                SSLProxyCheckPeerExpire off
 +
 +                # SSL certificates
 +                SSLCertificateFile /etc/letsencrypt/live/mm.mondomaine.org/fullchain.pem
 +                SSLCertificateKeyFile /etc/letsencrypt/live/mm.mondomaine.org/privkey.pem
 +                Include /etc/letsencrypt/options-ssl-apache.conf
 +
 +                # Proxy base parameters
 +                ProxyPreserveHost On
 +                ProxyRequests Off
 +
 +                # Proxy pour cetificat
 +                DocumentRoot /var/www/html
 +                ProxyPass /.well-known !
 +
 +                # Set web sockets
 +                RewriteEngine On
 +                RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC,OR]
 +                RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
 +                RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
 +                RewriteRule .* ws://10.0.3.200:8065%{REQUEST_URI} [P,QSA,L]
 +
 +                # Proxy to container
 +                ProxyPass / http://10.0.3.200:8065/
 +                ProxyPassReverse / http://10.0.3.200:8065/
 +                ProxyPassReverseCookieDomain 10.0.3.200 mm.mondomaine.org
 +
 +                # Logs
 +                ErrorLog /var/log/apache2/mm.mondomaine.org.error.log
 +                LogLevel error
 +                CustomLog /var/log/apache2/mm.mondomaine.org.access.log vhost_combined
 +
 +        </VirtualHost>
 +
 +</IfModule>
 +</file>
 +Ajouter ensuite ce vhost ainsi que celui pour port 80 et reload
 +  a2ensite mm.mondomaine.org.conf mm.mondomaine.org-le-ssl.conf 
 +  systemctl reload apache2
 +
 +===== Configuration de Mattermost =====
 +On doit maintenant pouvoir se rendre à l'url pour accéder à l'interface de Mattermost et créer ainsi le premier utilisateur administrateur du site
 +
 +Notamment la configuration SMTP pour que les mails soient bien envoyés
 +{{::mattermost-smtp.png|}}
 +Et configurer les notifications pour qu'elles aient un expéditeur, ...
 +{{::mattermost-notifications.png|}}
 +
 +===== Configurations complémentaires =====
 +==== On règle les locales pour être en français par défaut ====
 +
 +  dpkg-reconfigure locales
 +Choisir FR UTF8 par défaut et régler dans l'interface d'amin de Mattermost le français par défaut
 +
 +Ajout du plug-in jitsi pour permettre l'intégration de visioconf dans les canaux de discussion Mattermost
 +
 +==== Désactiver la télémétrie de Mattermost qui envoie des datas anonymisés ====
 +Modifier à la ligne 168 dans 
 +  nano /opt/mattermost/config/config.json
 +  "EnableDiagnostics": false,
 +  "EnableSentry": false,
 +
 +Voir https://docs.mattermost.com/administration/telemetry.html
 +
 +==== Configurer les Headers pour la CSP Content-Security Policy ====
 +  * https://forum.mattermost.org/t/set-custom-headers-for-content-security/11093/3
 +
 +==== Utilitaire en ligne de commande pour supprimer un canal ou une équipe et plus ====
 +Depuis Mattermost 6, l'utilitaire [[https://medium.com/@santosjs/plugging-in-to-the-mattermost-cli-8cdcef2bd1f6|mattermost]] a été complété par mmctl, [[https://docs.mattermost.com/manage/mmctl-command-line-tool.html|voir la documentation]]
 +
 +Pour faire marcher cet utilitaire mmctl, il faut faire plusieurs choses :
 +
 +éditer Mattermost's config.json file,et mettre EnableLocalMode to "true"
 +  nano /opt/mattermost/config/config.json
 +vérifier le chemin de la socket locale dans ce fichier et ajouter dans le /root/.bashrc
 +
 +  export PATH=$PATH:/opt/mattermost/bin/
 +  export MMCTL_LOCAL=true
 +  export MMCTL_LOCAL_SOCKET_PATH=/var/tmp/mattermost_local.socket
 +Se relogguer et relancer mattermost
 +  systemctl restart mattermost
 +
 +**Gestion d'équipe**
 +
 +<code>
 +        mmctl team archive - Archive some teams
 +        mmctl team create - Create teams
 +        mmctl team delete - Delete teams
 +        mmctl team list - List teams
 +        mmctl team modify - Modify teams
 +        mmctl team rename - Rename teams
 +        mmctl team restore - Restore teams
 +        mmctl team search - Search teams
 +        mmctl team users - Manage team users
 +</code>
 +
 +==== Intégrer les nouveaux utilisateurs dans les canaux publics ====
 +Modifier en utilisant __l'url__ du canal : config supprimée le 1er juin 2022 car s'appliquait à toutes les équipes qui n'ont pas les mêmes noms de canaux
 +  nano /opt/mattermost/config/config.json
 +          "ExperimentalDefaultChannels": [
 +            "chantier-formation-professionnelle",
 +            "chantier-accompagnement-de-projet-essis",
 +            "chantier-transition-numerique",
 +            "chantier-formation-des-facilitateurs-de-tiers-lieux",
 +            "chantier-formation-professionnelle",
 +            "chantier-formation",
 +            "appel-a-projets",
 +            "cest-quoi-un-tiers-lieux",
 +            "culture-du-faire"
 +        ]
 +
 +  
 +==== Désactiver les messages système (annonce de qui a rejoint le canal ...) ====
 +Voir [[https://docs.mattermost.com/administration/config-settings.html#enable-default-channel-leave-join-system-messages|cette documentation]], à voir si cela ne s'applique qu'au canal centre ville
 +
 +  nano /opt/mattermost/config/config.json
 +  "ExperimentalEnableDefaultChannelLeaveJoinMessages": false
 +  
 +==== Activer / Désactiver le plug-in Jitsi si marche plus ====
 +[[https://github.com/mattermost/mattermost-plugin-jitsi/issues/6|Essayer ceci]] si le plug-in jitsi ne marche plus
 +  
 +Chaque utilisateur a la possibiltié de désactiver ces messages dans [[https://docs.mattermost.com/help/settings/account-settings.html#enable-join-leave-messages|les paramètres avancés de son compte]] : 
 +
 +===== Mise à jour de Mattermost =====
 +Voir [[https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html|la doc officielle]].
 +
 +En résumé :
 +
 +Telecharger puis décompresser la version de [[https://docs.mattermost.com/upgrade/extended-support-release.html#what-are-the-current-supported-extended-support-release-versions|Mattermost ESR]] désirée ou la [[https://docs.mattermost.com/upgrade/version-archive.html#mattermost-enterprise-edition|toute dernière]] dans /tmp :
 +
 +<code bash>
 +cd /tmp
 +wget https://releases.mattermost.com/7.9.1/mattermost-7.9.1-linux-amd64.tar.gz
 +tar -xf mattermost*.gz --transform='s,^[^/]\+,\0-upgrade,'
 +</code>
 +
 +Arrêter Mattermost :
 +
 +<code bash>
 +systemctl stop mattermost
 +</code>
 +
 +Nettoyer le dossier du mattermost actuel :
 +
 +<code bash>
 +cd /opt
 +find mattermost/ mattermost/client/ -mindepth 1 -maxdepth 1 \! \( -type d \( -path mattermost/client -o -path mattermost/client/plugins -o -path mattermost/config -o -path mattermost/logs -o -path mattermost/plugins -o -path mattermost/data \) -prune \) | sort | sudo xargs rm -r
 +</code>
 +
 +Appliquer la mise à jour des fichiers et remettre les droits :
 +
 +<code bash>
 +cp -an /tmp/mattermost-upgrade/. mattermost/
 +chown -R mattermost:mattermost /opt/mattermost
 +</code>
 +
 +Redémarrer Mattermost :
 +
 +<code bash>
 +systemctl start mattermost
 +</code>
 +
 +Supprimer les fichiers temporaires :
 +
 +<code bash>
 +rm -rf /tmp/mattermost-upgrade && rm -i /tmp/mattermost*.gz
 +</code>
 +
 +{{tag>bj serveur lxc mattermost futuretic}}
mattermost_un_container_lxc.1614166488.txt.gz · Dernière modification : 2021/02/24 11:34 de Benjamin Labomedia