DebianDebian Based

How To Install Mattermost on Debian 12

Install Mattermost on Debian 12

In today’s fast-paced work environment, effective communication is paramount. Mattermost, an open-source collaboration platform, offers teams a self-hosted solution to manage their communications securely. This guide will walk you through the detailed steps of installing Mattermost on a Debian 12 server, ensuring that you have a robust platform for your team’s collaboration needs.

Prerequisites

Before diving into the installation process, it’s essential to ensure that your server meets the necessary requirements.

System Requirements

  • Minimum hardware specifications: 1 vCPU/core and 2GB RAM.
  • Storage: At least 10GB of free disk space for application data.
  • A stable internet connection for downloading packages.

Software Requirements

  • Debian 12 (Bookworm) installed on your server.
  • A non-root user with sudo privileges to execute installation commands.
  • A domain name pointed to your server’s IP address (recommended for production use).

Installation Tools

  • Command-line tools: wget, curl, and nano or vim for text editing.

Step 1: Update the System

Keeping your system updated is crucial for security and stability. Start by updating the package index and upgrading installed packages:

sudo apt update && sudo apt upgrade -y

Step 2: Install Dependencies

The next step involves installing the necessary dependencies for Mattermost, including PostgreSQL and Nginx.

Install PostgreSQL

PostgreSQL is the recommended database for Mattermost. Install it using the following command:

sudo apt install postgresql postgresql-contrib -y

Once installed, you can check the status of PostgreSQL with:

sudo systemctl status postgresql

Install Nginx

Nginx will serve as a reverse proxy for Mattermost. Install it by running:

sudo apt install nginx -y

You can verify that Nginx is running with:

sudo systemctl status nginx

Install Certbot (for SSL)

If you plan to use HTTPS (highly recommended), install Certbot to obtain SSL certificates:

sudo apt install certbot python3-certbot-nginx -y

Step 3: Create a System User for Mattermost

A dedicated user will enhance security by ensuring that Mattermost runs under a non-root account. Create this user with the following command:

sudo useradd --system --user-group mattermost

Step 4: Download Mattermost

The next step is to download the latest version of Mattermost. You can find the latest version on the official Mattermost downloads page. Replace `X.X.X` with the latest version number in the command below:

wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz

Step 5: Extract and Move Mattermost Files

After downloading, extract the files and move them to the appropriate directory:

tar -xvzf mattermost*.tar.gz
sudo mv mattermost /opt/

Step 6: Set Up Data Directory

Create a data directory where Mattermost will store its files:

sudo mkdir /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost/data

Step 7: Configure PostgreSQL Database

You need to set up a PostgreSQL database for Mattermost. Follow these steps:

    1. Switch to PostgreSQL user:
sudo -i -u postgres
    1. Create a new database and user:
psql
CREATE DATABASE mattermost;
CREATE USER mmuser WITH PASSWORD 'yourpassword';
GRANT ALL PRIVILEGES ON DATABASE mattermost TO mmuser;
    1. Exit from PostgreSQL shell:
\q
exit

Step 8: Configure Mattermost Settings

Edit the `config.json` file located in `/opt/mattermost/config/` to set up database connection settings:

nano /opt/mattermost/config/config.json

You will need to modify these key properties in the JSON file:

  • “DriverName”: “postgres”
  • “DataSource”: “mmuser:yourpassword@localhost/mattermost”

Step 9: Create Systemd Service File

This service file will manage the Mattermost service. Create it using:

sudo nano /etc/systemd/system/mattermost.service

Add the following content to define how to start and stop Mattermost:

[Unit]
Description=Mattermost
After=network.target

[Service]
Type=exec
User=mattermost
Group=mattermost
ExecStart=/opt/mattermost/bin/mattermost
WorkingDirectory=/opt/mattermost
Restart=always

[Install]
WantedBy=multi-user.target

Step 10: Start and Enable Mattermost Service

The final steps involve starting the Mattermost service and enabling it to start on boot:

sudo systemctl daemon-reload
sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service

Step 11: Verify Installation

You can verify if Mattermost is running correctly by checking its status or accessing it via curl:

curl http://localhost:8065
sudo systemctl status mattermost.service

Install Mattermost on Debian 12

Troubleshooting Tips

  • If you encounter issues starting Mattermost, check logs located in `/opt/mattermost/logs/` for detailed error messages.
  • If PostgreSQL fails to connect, ensure that your database credentials in `config.json` are correct and that PostgreSQL is running.
  • If Nginx does not serve Mattermost correctly, verify your Nginx configuration files located in `/etc/nginx/sites-available/` and reload Nginx with `sudo systemctl reload nginx`.
  • If you face permission issues, ensure that all directories are owned by the `mattermost` user and group.
  • If SSL does not work, check Certbot logs or run `certbot renew --dry-run` to test certificate renewal.

Congratulations! You have successfully installed Mattermost. Thanks for using this tutorial for installing Mattermost on your Debian 12 “Bookworm” system. For additional help or useful information, we recommend you check the official Mattermost website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button