====== Setup up Mattermost with existing Gitlab ======
Based on
* http://docs.mattermost.com/developer/developer-setup.html#ubuntu
* http://docs.mattermost.com/install/prod-ubuntu.html
* https://github.com/mattermost/docs/pull/25/files
* http://docs.mattermost.com/deployment/sso-gitlab.html
I was trying to set up mattermost with Gitlab I have installed on an Apache2 server in Ubuntu from source. The follow procedure proved to work for me.
===== Install Docker =====
* Download and install Docker sudo apt-get update
sudo apt-get install wget
wget -qO- https://get.docker.com/ | sh
sudo usermod -aG docker
sudo service docker start
newgrp docker
*Set up your dockerhost address by editing your ''/etc/hosts'' file to include the following line 127.0.0.1 dockerhost
* Install build essentials apt-get install build-essential
===== Install Go =====
If you installed the Gitlab 8+, you should already have GO installed.
===== Install Node.js =====
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs
===== Install mysql server 5.6 or above =====
sudo apt-get update
sudo apt-get install mysql-server-5.6
After that, create a databased called ''mattermost''
====== Mattermost Server ======
* Download the latest Mattermost Server by typing: wget https://releases.mattermost.com/2.2.0/mattermost-team-2.2.0-linux-amd64.tar.gz
tar -xvzf mattermost.tar.gz
* Create the storage directory for files. sudo mkdir -p /mattermost/data
sudo chown -R username /mattermost
* Configure Mattermost Server by editing the config.json file at mattermost/config
* cd ~/mattermost/config
* Edit the file by typing: ''nano config.json''
* replace ''DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost?charset=utf8mb4,utf8'' with your own mysql database name and password
* Test the Mattermost Server cd ~/mattermost/bin
./platform
You should see a console log like Server is listening on :8065
if it runs correctly.
* Stop the server for now by pressing ctrl-c
* Setup Mattermost to use the Upstart daemon which handles supervision of the Mattermost process. sudo nano /etc/init/mattermost.conf
Copy the following lines into /etc/init/mattermost.conf start on runlevel [2345]
stop on runlevel [016]
respawn
chdir /home/ubuntu/mattermost
setuid ubuntu
exec bin/platform
* Test the setup by starting the service using sudo start mattermost
Verify the service is running by typing: curl http://127.0.0.1:8065
You should see a page titles Mattermost - Signup if running correctly.
===== Setup up the Apache2 server =====
* Create a config file using sudo nano /etc/apache2/sites-available/mattermost.conf
* In the file, include the following (note to change your domain name):
ServerName mattermost.xxx.org
ProxyPreserveHost On
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/api/v1/websocket [NC,OR]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
# Be sure to uncomment the next 2 lines if https is used
# RequestHeader set X-Forwarded-Proto "https"
# Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
# Prevent apache from sending incorrect 304 status updates
RequestHeader unset If-Modified-Since
RequestHeader unset If-None-Match
Require all granted
ProxyPassReverse ws://127.0.0.1:8065/api/v1/websocket
ProxyPassReverseCookieDomain 127.0.0.1 mattermost.xxx.org
Require all granted
ProxyPassReverse http://127.0.0.1:8065/
ProxyPassReverseCookieDomain 127.0.0.1 mattermost.xxx.org
* Start the service by using
sudo a2enmod proxy
sudo a2enmod proxy_balancer
sudo a2enmod proxy_http
sudo a2enmod mod_proxy_wstunnel
sudo a2enmod headers
sudo a2ensite mattermost
sudo service apache2 reload
Then you can point to mattermost in your web browser.
===== Using Gitlab as Single-Sign-On =====
Follow the instruction here: http://docs.mattermost.com/deployment/sso-gitlab.html
{{tag>}}
~~LINKBACK~~
~~DISCUSSION~~