mattermost_un_container_lxc
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 | ||
| mattermost_un_container_lxc [2021/02/23 14:09] – Benjamin Labomedia | mattermost_un_container_lxc [2023/10/11 21:04] (Version actuelle) – [Installer un container LXC sur le serveur hote] Labomedia | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Mattermost ? ====== | + | ====== Mattermost ? Installation et configuration dans un container LXC ====== |
| * [[https:// | * [[https:// | ||
| Ligne 5: | Ligne 5: | ||
| - | ===== Installation de Mattermost dans un container LXC ===== | + | ===== Installer |
| + | lxc-create -t download -n tlcvl -- -d debian -r buster -a amd64 | ||
| + | On démarre le container et on regarde son IP : | ||
| + | lxc-start tlcvl | ||
| + | lxc-ls -f | ||
| + | NAME STATE | ||
| + | tlcvl RUNNING 0 | ||
| + | On fait en sorte que le container démarre tout seul en ajoutant à la fin du fichier | ||
| + | nano / | ||
| + | # Autostart | ||
| + | lxc.start.auto = 1 | ||
| + | On rentre dans le container pour installer Mattermost, mais avant, on install quelques outils pratiques. | ||
| + | lxc-attach tlcvl | ||
| + | root@tlcvl | ||
| + | apt update | ||
| + | apt install wget curl nano iotop nload htop locate curl gnupg | ||
| + | ===== Installation bdd et Mattermost ===== | ||
| + | Ensuite il s'agit de suivre la [[https:// | ||
| + | |||
| + | On crée un utilisateur spécifique | ||
| + | sudo useradd --system --user-group mattermost | ||
| + | sudo usermod -a -G sudo mattermost | ||
| + | Installation du système de base de données | ||
| + | sudo apt-get install mariadb-server | ||
| + | Sécurisation | ||
| + | mysql_secure_installation | ||
| + | Configuration bdd et user | ||
| + | mysql -u root -p | ||
| + | mysql> create user ' | ||
| + | mysql> create database mattermost; | ||
| + | mysql> grant all privileges on mattermost.* to ' | ||
| + | mysql> exit | ||
| + | On télécharge la dernière version de Mattermost | ||
| + | wget https:// | ||
| + | tar -xvzf mattermost*.gz | ||
| + | sudo mv mattermost /opt | ||
| + | sudo mkdir / | ||
| + | sudo chown -R mattermost: | ||
| + | sudo chmod -R g+w / | ||
| + | On opère des modifications dans le fichier de config | ||
| + | sudo nano / | ||
| + | Il faut modifier le driver pour la base de données + accès à la bdd, informer un serveur smtp, activer les notifications par mail, indiquer des champs reply-to et autres pour que l' | ||
| + | <file php config.json> | ||
| + | ... | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | |||
| + | ... | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | |||
| + | </ | ||
| + | **Test du mattermost** | ||
| + | cd / | ||
| + | sudo -u mattermost bin/ | ||
| + | curl http:// | ||
| + | |||
| + | Création d'un fichier systemd pour lancement automatique | ||
| + | nano / | ||
| + | <file php mattermost.service> | ||
| + | [Unit] | ||
| + | Description=Mattermost | ||
| + | After=network.target | ||
| + | After=postgresql.service | ||
| + | BindsTo=postgresql.service | ||
| + | |||
| + | [Service] | ||
| + | Type=notify | ||
| + | ExecStart=/ | ||
| + | TimeoutStartSec=3600 | ||
| + | Restart=always | ||
| + | RestartSec=10 | ||
| + | WorkingDirectory=/ | ||
| + | User=mattermost | ||
| + | Group=mattermost | ||
| + | LimitNOFILE=49152 | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </ | ||
| + | On lance mattermost automatiquement : | ||
| + | systemctl start mattermost.service | ||
| + | systemctl status mattermost.service | ||
| + | systemctl enable mattermost.service | ||
| + | |||
| + | 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' | ||
| + | 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 / | ||
| + | <file bash mm.mondomaine.org-le-ssl.conf> | ||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | ServerAdmin | ||
| + | ServerName | ||
| + | |||
| + | # Headers for security | ||
| + | < | ||
| + | Header always set Strict-Transport-Security " | ||
| + | Header set X-XSS-Protection "1; mode=block" | ||
| + | Header set X-Frame-Options " | ||
| + | Header set X-Content-Type-Options " | ||
| + | </ | ||
| + | |||
| + | # 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 / | ||
| + | SSLCertificateKeyFile / | ||
| + | Include / | ||
| + | |||
| + | # Proxy base parameters | ||
| + | ProxyPreserveHost On | ||
| + | ProxyRequests Off | ||
| + | |||
| + | # Proxy pour cetificat | ||
| + | DocumentRoot / | ||
| + | ProxyPass / | ||
| + | |||
| + | # Set web sockets | ||
| + | RewriteEngine On | ||
| + | RewriteCond %{REQUEST_URI} / | ||
| + | RewriteCond %{HTTP: | ||
| + | RewriteCond %{HTTP: | ||
| + | RewriteRule .* ws:// | ||
| + | |||
| + | # Proxy to container | ||
| + | ProxyPass / http:// | ||
| + | ProxyPassReverse / http:// | ||
| + | ProxyPassReverseCookieDomain 10.0.3.200 mm.mondomaine.org | ||
| + | |||
| + | # Logs | ||
| + | ErrorLog / | ||
| + | LogLevel error | ||
| + | CustomLog / | ||
| + | |||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | 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' | ||
| + | |||
| + | Notamment la configuration SMTP pour que les mails soient bien envoyés | ||
| + | {{:: | ||
| + | Et configurer les notifications pour qu' | ||
| + | {{:: | ||
| + | |||
| + | ===== 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' | ||
| + | |||
| + | Ajout du plug-in jitsi pour permettre l' | ||
| + | |||
| + | ==== Désactiver la télémétrie de Mattermost qui envoie des datas anonymisés ==== | ||
| + | Modifier à la ligne 168 dans | ||
| + | nano / | ||
| + | " | ||
| + | " | ||
| + | |||
| + | Voir https:// | ||
| + | |||
| + | ==== Configurer les Headers pour la CSP Content-Security Policy ==== | ||
| + | * https:// | ||
| + | |||
| + | ==== Utilitaire en ligne de commande pour supprimer un canal ou une équipe et plus ==== | ||
| + | Depuis Mattermost 6, l' | ||
| + | |||
| + | Pour faire marcher cet utilitaire mmctl, il faut faire plusieurs choses : | ||
| + | |||
| + | éditer Mattermost' | ||
| + | nano / | ||
| + | vérifier le chemin de la socket locale dans ce fichier et ajouter dans le / | ||
| + | |||
| + | export PATH=$PATH:/ | ||
| + | export MMCTL_LOCAL=true | ||
| + | export MMCTL_LOCAL_SOCKET_PATH=/ | ||
| + | Se relogguer et relancer mattermost | ||
| + | systemctl restart mattermost | ||
| + | |||
| + | **Gestion d' | ||
| + | |||
| + | < | ||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | ==== Intégrer les nouveaux utilisateurs dans les canaux publics ==== | ||
| + | Modifier en utilisant __l' | ||
| + | nano / | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ] | ||
| + | |||
| + | | ||
| + | ==== Désactiver les messages système (annonce de qui a rejoint le canal ...) ==== | ||
| + | Voir [[https:// | ||
| + | |||
| + | nano / | ||
| + | " | ||
| + | | ||
| + | ==== Activer / Désactiver le plug-in Jitsi si marche plus ==== | ||
| + | [[https:// | ||
| + | | ||
| + | Chaque utilisateur a la possibiltié de désactiver ces messages dans [[https:// | ||
| + | |||
| + | ===== Mise à jour de Mattermost ===== | ||
| + | Voir [[https:// | ||
| + | |||
| + | En résumé : | ||
| + | |||
| + | Telecharger puis décompresser la version de [[https:// | ||
| + | |||
| + | <code bash> | ||
| + | cd /tmp | ||
| + | wget https:// | ||
| + | tar -xf mattermost*.gz --transform=' | ||
| + | </ | ||
| + | |||
| + | Arrêter Mattermost : | ||
| + | |||
| + | <code bash> | ||
| + | systemctl stop mattermost | ||
| + | </ | ||
| + | |||
| + | Nettoyer le dossier du mattermost actuel : | ||
| + | |||
| + | <code bash> | ||
| + | cd /opt | ||
| + | find mattermost/ mattermost/ | ||
| + | </ | ||
| + | |||
| + | Appliquer la mise à jour des fichiers et remettre les droits : | ||
| + | |||
| + | <code bash> | ||
| + | cp -an / | ||
| + | chown -R mattermost: | ||
| + | </ | ||
| + | |||
| + | Redémarrer Mattermost : | ||
| + | |||
| + | <code bash> | ||
| + | systemctl start mattermost | ||
| + | </ | ||
| + | |||
| + | Supprimer les fichiers temporaires : | ||
| + | |||
| + | <code bash> | ||
| + | rm -rf / | ||
| + | </ | ||
| + | |||
| + | {{tag>bj serveur lxc mattermost futuretic}} | ||
mattermost_un_container_lxc.1614089373.txt.gz · Dernière modification : de Benjamin Labomedia
