Ceci est une ancienne révision du document !
Table des matières
Mattermost ? Installation et configuration dans un container LXC
Installation de Mattermost dans un container LXC
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 AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED tlcvl RUNNING 0 - 10.0.3.235 - false
On fait en sorte que le container démarre tout seul en ajoutant à la fin du fichier
nano /var/lib/lxc/tlcvl/config # 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 procédure d'installation décrite ici :
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 'mmuser'@'localhost' identified by 'mmuser-password'; mysql> create database mattermost; mysql> grant all privileges on mattermost.* to 'mmuser'@'localhost'; mysql> exit
On télécharge la dernière version de Mattermost
wget https://releases.mattermost.com/5.32.1/mattermost-5.32.1-linux-amd64.tar.gz tar -xvzf mattermost*.gz sudo mv mattermost /opt sudo mkdir /opt/mattermost/data sudo chown -R mattermost:mattermost /opt/mattermost sudo chmod -R g+w /opt/mattermost
On opère des modifications dans le fichier de config
sudo nano /opt/mattermost/config/config.json
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'envoi de mail marche bien, cela donne :
- config.json
... "SqlSettings": { "DriverName": "mysql", "DataSource": "mmuser:*******************@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s", "DataSourceReplicas": [], "DataSourceSearchReplicas": [], "MaxIdleConns": 20, "ConnMaxLifetimeMilliseconds": 3600000, "MaxOpenConns": 300, "Trace": false, "AtRestEncryptKey": "*********************", "QueryTimeout": 30, "DisableDatabaseSearch": false }, ... "EmailSettings": { "EnableSignUpWithEmail": true, "EnableSignInWithEmail": true, "EnableSignInWithUsername": true, "SendEmailNotifications": true, "UseChannelInEmailNotifications": false, "RequireEmailVerification": false, "FeedbackName": "TL-CVL Gentil Robot", "FeedbackEmail": "febot@futuretic.fr", "ReplyToAddress": "febot@futuretic.fr", "FeedbackOrganization": "tl-cvl.futuretic.fr", "EnableSMTPAuth": true, "SMTPUsername": "febot@futuretic.fr", "SMTPPassword": "******************************", "SMTPServer": "mail.gandi.net", "SMTPPort": "465", "SMTPServerTimeout": 10, "ConnectionSecurity": "TLS", "SendPushNotifications": true, "PushNotificationServer": "https://push-test.mattermost.com", "PushNotificationContents": "full", "PushNotificationBuffer": 1000, "EnableEmailBatching": false, "EmailBatchingBufferSize": 256, "EmailBatchingInterval": 30, "EnablePreviewModeBanner": false, "SkipServerCertificateVerification": false, "EmailNotificationContentsType": "full", "LoginButtonColor": "#0000", "LoginButtonBorderColor": "#2389D7", "LoginButtonTextColor": "#2389D7" },
Test du mattermost
cd /opt/mattermost sudo -u mattermost bin/mattermost curl http://localhost:8065
Création d'un fichier systemd pour lancement automatique
nano /lib/systemd/system/mattermost.service
- mattermost.service
[Unit] Description=Mattermost After=network.target After=postgresql.service BindsTo=postgresql.service [Service] Type=notify ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 Restart=always RestartSec=10 WorkingDirectory=/opt/mattermost 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