Outils pour utilisateurs

Outils du site


mattermost_un_container_lxc

Ceci est une ancienne révision du document !


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

Configuration de Mattermost

mattermost_un_container_lxc.1614166488.txt.gz · Dernière modification : 2021/02/24 11:34 de Benjamin Labomedia