|
|
# Installation de Mattermost dans un environnement LAMP
|
|
|
|
|
|
La [documentation officielle de Mattermost pour Ubuntu](http://docs.mattermost.com/install/prod-ubuntu.html)
|
|
|
est prévue pour un environnement complexe,
|
|
|
avec le serveur web et la base de données répartis sur des serveurs différents.
|
|
|
De plus, elle préconise d'utiliser Nginx et PostgreSQL.
|
|
|
|
|
|
Nous avons un setup LAMP plus classique sur un seul serveur.
|
|
|
Voici donc comment installer rapidement Mattermost
|
|
|
sur un serveur Ubuntu avec Apache et MySQL.
|
|
|
|
|
|
## Environnement
|
|
|
|
|
|
* Ubuntu 14.04
|
|
|
* Apache 2.4
|
|
|
* MySQL 5.6
|
|
|
|
|
|
Note : l'installation de Mattermost ne fonctionne pas avec MySQL 5.5,
|
|
|
pensez à installer la version 5.6 ou supérieur.
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
On part du principe que Mattermost est lancé par un utilisateur qui s'appelle `team`
|
|
|
et qu'il tournera dans le dossier `/home/team/mattermost/`.
|
|
|
|
|
|
On télécharge Mattermost 3.2.0 pour Linux et on décompresse l'archive :
|
|
|
|
|
|
```bash
|
|
|
cd /home/team/
|
|
|
wget http://releases.mattermost.com/3.2.0/mattermost-team-3.2.0-linux-amd64.tar.gz
|
|
|
tar xvfz mattermost-team-3.2.0-linux-amd64.tar.gz
|
|
|
cd mattermost/
|
|
|
```
|
|
|
|
|
|
On crée une base de données `mattermost`
|
|
|
et un utilisateur `mattermost` qui a tous les droits sur cette base.
|
|
|
|
|
|
On modifie le fichier `config/config.json`
|
|
|
pour que mattermost utilise cette base :
|
|
|
|
|
|
```diff
|
|
|
@@ -44,7 +44,7 @@
|
|
|
},
|
|
|
"SqlSettings": {
|
|
|
"DriverName": "mysql",
|
|
|
- "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8",
|
|
|
+ "DataSource": "mattermost:monmotdepasse@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8",
|
|
|
"DataSourceReplicas": [],
|
|
|
"MaxIdleConns": 10,
|
|
|
"MaxOpenConns": 10,
|
|
|
```
|
|
|
|
|
|
On vérifie que Mattermost se lance bien :
|
|
|
|
|
|
```bash
|
|
|
./bin/platform
|
|
|
```
|
|
|
|
|
|
Puis connectez vous à [example.com:8065](http://example.com:8065/)
|
|
|
pour vérifier que l'interface de Mattermost se charge bien.
|
|
|
Si tout fonctionne, vous pouvez stopper Mattermost dans le terminal (ctrl + c).
|
|
|
|
|
|
Maintenant pour que Mattermost puisse être lancé automatiquement par le système,
|
|
|
on crée un nouveau service.
|
|
|
Pour ça, il faut créer un fichier `/etc/init/mattermost.conf`
|
|
|
avec le contenu suivant :
|
|
|
|
|
|
```upstart
|
|
|
start on runlevel [2345]
|
|
|
stop on runlevel [016]
|
|
|
respawn
|
|
|
chdir /home/team/mattermost
|
|
|
setuid team
|
|
|
exec bin/platform
|
|
|
```
|
|
|
|
|
|
Vous pouvez ensuite lancer le service :
|
|
|
|
|
|
```bash
|
|
|
sudo service mattermost start
|
|
|
```
|
|
|
|
|
|
Maintenant, pour que Mattermost puisse être accessible via team.example.com
|
|
|
sans avoir besoin de spécifier :8065 dans l'URL,
|
|
|
on va mettre en place un reverse proxy avec Apache.
|
|
|
Pour cela on a besoin du module proxy d'Apache :
|
|
|
|
|
|
```bash
|
|
|
sudo a2enmod proxy
|
|
|
sudo a2enmod proxy_http
|
|
|
sudo a2enmod proxy_wstunnel
|
|
|
sudo service apache2 restart
|
|
|
```
|
|
|
|
|
|
On crée ensuite un fichier `/etc/apache2/sites-available/mattermost.conf` :
|
|
|
|
|
|
```apache
|
|
|
<VirtualHost *:80>
|
|
|
ServerName team.example.com
|
|
|
|
|
|
ProxyPass / http://localhost:8065/
|
|
|
ProxyPassReverse / http://localhost:8065/
|
|
|
ProxyPreserveHost On
|
|
|
|
|
|
RewriteEngine On
|
|
|
|
|
|
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
|
|
|
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
|
|
|
RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
|
|
|
</VirtualHost>
|
|
|
```
|
|
|
|
|
|
On active ensuite le nouvel hôte :
|
|
|
|
|
|
```bash
|
|
|
sudo a2ensite mattermost
|
|
|
sudo service apache2 reload
|
|
|
```
|
|
|
|
|
|
Connectez vous à [team.example.com](http://team.example.com/)
|
|
|
pour vérifier que Mattermost est bien accessible sur le port 80.
|
|
|
|
|
|
Voilà, il ne vous reste plus qu'à créer votre équipe
|
|
|
et à configurer Mattermost selon vos besoins. |