Mattermost is an open source, self-hosted, team communication platform. There are desktop clients for Windows, MacOS, and Linux and mobile apps for iOS and Android. Mattermost is a better choice for enterprises who want a robust solution with no per-user fees like Slack. When considering the performance point of view, it is having lower CPU usage because they are written in Go and React and hence provide an added advantage based on other competitor chat environments.
Let’s see how we can install Mattermost on Centos 7.
sudo yum update sudo yum upgrade
1) Install wget
yum install wget
2) Download the MySQL Yum repository from dev.mysql.com.
3) Install the Yum repository from the file downloaded
sudo yum localinstall mysql57-community-release-el7-9.noarch.rpm
4) Install MySQL
sudo yum install mysql-community-server
5) Start the MySQL server.
sudo systemctl start mysqld.service
6) Obtain the root password that was generated when you started MySQL for the first time from the below step.
sudo grep 'temporary password' /var/log/mysqld.log [MySQL root password: ************]
7) Change the root password after login with the password that you obtained from the previous step.
mysql -u root -p
8) Change the password. At the mysql prompt, type the following command. Replace *********** with the password that you want to use.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '************';
9) Set MySQL to start automatically when the machine starts.
sudo systemctl enable mysqld
10) Create the Mattermost database user 'mmdbuser'.
mysql> create user 'mmdbuser'@'%' identified by 'mmdbuser-password';
11) Create the Mattermost database.
mysql> create database mattermost;
12) Grant access privileges to the user 'mmdbuser'.
mysql> grant all privileges on mattermost.* to 'mmdbuser'@'%';
Once the above steps are completed we will now install mattermost on the server.
13) Download the latest version of mattermost
14) Extract the Mattermost Server files.
tar -xvzf *.gz
15) Move the extracted file to the /opt directory.
sudo mv mattermost /opt
16) Create the storage directory for files.
sudo mkdir /opt/mattermost/data
17) Set up a system user and group called mattermost that will run this service, and set the ownership and permissions.
sudo useradd --system --user-group mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost
18) Set up the database driver in the file /opt/mattermost/config/config.json. Open the file as root in a text editor and make the following changes:
a) Set "DriverName" to "mysql"
b) Set "DataSource" to the following value, replacing <mmuser-password> and <host-name-or-IP> with the appropriate values. Also make sure that the database name is mattermost instead of mattermost_test:
19) Test the Mattermost server to make sure everything works.
a) Change to the mattermost directory:
b) Start the Mattermost server as the user mattermost:
sudo -u mattermost ./bin/mattermost
20) Set up Mattermost to use the systemd init daemon which handles supervision of the Mattermost process.
a) Create the Mattermost configuration file:
sudo touch /etc/systemd/system/mattermost.service
b) Open the configuration file in your favorite text editor, and copy the following lines into the file:
[Unit] Description=Mattermost After=syslog.target network.target mysqld.service [Service] Type=notify WorkingDirectory=/opt/mattermost User=mattermost ExecStart=/opt/mattermost/bin/mattermost PIDFile=/var/spool/mattermost/pid/master.pid TimeoutStartSec=3600 LimitNOFILE=49152 [Install] WantedBy=multi-user.target
c) Make the service executable.
sudo chmod 664 /etc/systemd/system/mattermost.service
d) Reload the systemd services.
sudo systemctl daemon-reload
e) Set Mattermost to start on boot.
sudo systemctl enable mattermost
21) Start the Mattermost server.
sudo systemctl start mattermost
22) Verify that Mattermost is running.
If it is running fine then an HTML is returned from the Mattermost server.
In the next article we will see how we can configure Mattermost on Centos 7