A tutorial on how to install Mattermost with PostgreSQL and Nginx on Ubuntu 16.04. Mattermost is an open source messaging system written in the programming languages Golang and React. It’s a slack alternative, we can build our own messaging service like slack or hipchat with it. Mattermost brings your team communication to a single place and makes it accessible anywhere. You can access it from your desktop, Android device, and iPhone.
- Ubuntu 16.04 – 64bit
- Root Privileges+
How to Install Mattermost with PostgreSQL and Nginx on Ubuntu 16.04
Step 1 – Install and Configure the PostgreSQL Database
Connect to your server by SSH or login on the terminal and update the Ubuntu repository.
ssh email@example.com sudo apt-get update
As the root user, install PostgreSQL with this apt command.
sudo apt-get install postgresql postgresql-contrib
When the installation finished, login to the postgres user and type in the command ‘psql‘ to login to the postgresql shell.
su - postgres psql
Change the postgres user password with the command below:
\password postgres Enter new password:
Next, we have to configure a new database and user for the Mattermost installation. I will create a new database named ‘mattermostdb‘ and user ‘matteruser‘ with password ‘matterpassword‘. Please chose a secure password for your installation.
Create the new database and user with PostgreSQL query below:
CREATE DATABASE mattermostdb; CREATE USER matteruser WITH PASSWORD 'matterpassword';
Grant ‘matteruser‘ privileges to the database ‘mattermostdb‘ and exit.
GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser; \q
Step 2 – Install and Configure Mattermost
Create new ‘matter‘ user and password.
useradd -m -s /bin/bash matter passwd matter
‘matter’ user created, now login to the user and download the latest Mattermost version with wget.
su - matter wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz
Extract the Mattermost file and you will see new directory ‘mattermost’, enter that directory with the cd command.
tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz cd mattermost/
Next, create a new ‘data’ directory for storing the user files, then edit the mattermost config file ‘config/config.json‘ with vim.
mkdir data/ vim config/config.json
We will run mattermost behind a Nginx reverse proxy, so it’s better to configure Mattermost to listen on the local IP address. In the ‘ServiceSettings‘ block, add the localhost IP address to the configuration on line 4.
Now go to the ‘SqlSettings‘ on line 48. Change the ‘DriverName‘ and ‘DataSource‘ configuration to use the PostgreSQL database with the configuration below:
"DriverName": "postgres", "DataSource": "postgres://matteruser:firstname.lastname@example.org:5432/mattermostdb?sslmode=disable&connect_timeout=10",