Installing Mattermost Server¶
Install Mattermost Server on a 64-bit machine.
Assume that the IP address of this server is 10.10.10.2.
To install Mattermost Server on Debian Buster
- Log in to the server that will host Mattermost Server and open a terminal window.
- Download the latest version of the Mattermost Server. In the following command, replace
X.X.X
with the version that you want to download:
wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz
- Extract the Mattermost Server files.
tar -xvzf mattermost*.gz
- Move the extracted file to the
/opt
directory.
sudo mv mattermost /opt
- Create the storage directory for files.
sudo mkdir /opt/mattermost/data
Note
The storage directory will contain all the files and images that your users post to Mattermost, so you need to make sure that the drive is large enough to hold the anticipated number of uploaded files and images.
- Set up a system user and group called
mattermost
that will run this service, and set the ownership and permissions.
- Create the Mattermost user and group:
sudo useradd --system --user-group mattermost
- Set the user and group mattermost as the owner of the Mattermost files:
sudo chown -R mattermost:mattermost /opt/mattermost
- Give write permissions to the mattermost group:
sudo chmod -R g+w /opt/mattermost
- Set up the database driver in the file
/opt/mattermost/config/config.json
. Open the file in a text editor and make the following changes:
- If you are using PostgreSQL:
- Set
"DriverName"
to"postgres"
- Set
"DataSource"
to the following value, replacing<mmuser-password>
and<host-name-or-IP>
with the appropriate values:"postgres://mmuser:<mmuser-password>@<host-name-or-IP>:5432/mattermost?sslmode=disable&connect_timeout=10",
.
- If you are using MySQL:
- Set
"DriverName"
to"mysql"
- 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 ismattermost
instead ofmattermost_test
:"mmuser:<mmuser-password>@tcp(<host-name-or-IP>:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"
Test the Mattermost server to make sure everything works.
- Change to the Mattermost directory:
cd /opt/mattermost
- Start the Mattermost server as the user mattermost:
sudo -u mattermost bin/mattermost
When the server starts, it shows some log information and the textServer is listening on :8065
. You can stop the server by pressing CTRL+C in the terminal window.
- Setup Mattermost to use systemd for starting and stopping.
- Create a systemd unit file:
sudo touch /lib/systemd/system/mattermost.service
- Open the unit file as root in a text editor, and copy the following lines into the file:
[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.targetNote
If you are using MySQL, replace
postgresql.service
withmysql.service
in 2 places in the[Unit]
section.Note
If you have installed MySQL or PostgreSQL on a dedicated server then you need to remove the
After=postgresql.service
andBindsTo=postgresql.service
orAfter=mysql.service
andBindsTo=mysql.service
lines in the[Unit]
section or the Mattermost service will not start.
- Make systemd load the new unit.
sudo systemctl daemon-reload
- Check to make sure that the unit was loaded.
sudo systemctl status mattermost.service
You should see an output similar to the following:
● mattermost.service - Mattermost Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled) Active: inactive (dead)
- Start the service.
sudo systemctl start mattermost.service
- Verify that Mattermost is running.
curl http://localhost:8065
You should see the HTML that’s returned by the Mattermost server. Note: in case firewall is used, external requests to port 8065 may be blocked. Use
sudo ufw allow 8065
to open port 8065.
- Set Mattermost to start on machine start up.
sudo systemctl enable mattermost.service
Now that the Mattermost server is up and running, you can do some initial configuration and setup.