mattermost_un_container_lxc
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
mattermost_un_container_lxc [2021/02/23 13:50] – créée Benjamin Labomedia | mattermost_un_container_lxc [2023/07/20 23:55] – Labomedia | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Mattermost ? ====== | + | ====== Mattermost ? Installation et configuration dans un container LXC ====== |
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | |||
+ | ===== On commence par installer un container sur le serveur hote ===== | ||
+ | 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 | ||
+ | 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 ici https:// | ||
+ | * | ||
+ | {{tag>bj serveur lxc mattermost futuretic}} |
mattermost_un_container_lxc.txt · Dernière modification : 2023/10/11 21:04 de Labomedia