Wie man das Mattermost Team Messaging System unter Debian 10 installiert

Mattermost ist ein Open-Source-Messaging-System, das in den Programmiersprachen Golang und React geschrieben wurde. Es ist eine slack-Alternative, wir können es benutzen, um unseren eigenen Nachrichtendienst wie slack oder hipchat damit aufzubauen.

Mattermost bringt Ihre Teamkommunikation an einen einzigen Ort und macht sie überall zugänglich. Sie können von Ihrem Desktop, Android-Gerät und iPhone darauf zugreifen.

In diesem Tutorial werden wir Ihnen zeigen, wie Sie Mattermost auf dem Debian Buster 10 installieren. Wir werden Mattermost mit dem MySQL-Datenbankserver, dem Nginx-Webserver und unter Verwendung von Mattermost als Systemd-Dienst auf der neuesten Debian-Version Buster 10 installieren.

Voraussetzung

FÃ?r dieses Tutorial werden wir die Mattermost-Installation auf Debian 10 mit 2 GB Ram, 25 freien Plattenplatz und 2CPUs testen.

Was werden wir tun?

  • MySQL-Server installieren
  • MySQL-Datenbank für Mattermost erstellen
  • Systembenutzer hinzufügen und herunterladen
  • Konfigurieren Sie Mattermost
  • Einrichten von Mattermost als Systemdienst
  • SSL Letsencrypt erzeugen
  • Installieren und Konfigurieren von Nginx als Reverse-Proxy
  • testen.

Schritt 1 – MySQL-Datenbank installieren

Zuerst werden wir den MySQL Server 8.0 aus dem offiziellen Repository auf unseren Debian-Server installieren. Sp, werden wir das offizielle MySQL-Repository hinzufügen und die MySQL-Pakete installieren.

Installieren Sie das ‚gnupg2‘-Werkzeug auf dem Debian-Server mit dem untenstehenden apt-Befehl.

sudo apt install curl wget gnupg2

Laden Sie das MySQL-Repository für das Debian-System herunter und fügen Sie es mit dem folgenden Befehl hinzu.

wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
dpkg -i mysql-apt-config_0.8.13-1_all.deb

Aktualisieren Sie nun alle Debian-Repositorys und installieren Sie die MySQL-Server-Pakete.

sudo apt update
sudo apt install mysql-server -y

Während der Installation des MySQL-Servers werden Sie aufgefordert, das Root-Passwort für Ihren MySQL-Server zu konfigurieren.

Geben Sie Ihr Root-Passwort für MySQL ein und wiederholen Sie es.

MySQL-Kennwort setzen

Sobald die Installation abgeschlossen ist, starten Sie den MySQL-Dienst und fügen ihn zum

systemctl start mysql
systemctl enable mysql

Infolgedessen ist der MySQL-Server jetzt auf dem Debian Buster 10 installiert. Und das Root-Passwort für den MySQL-Server wurde konfiguriert.

MySQL starten

Schritt 2 – MySQL-Datenbank für Mattermost erstellen

Standardmäßig unterstützt Mattermost zwei Datenbanktreiber, die Datenbanken PostgreSQL und MySQL. Und für dieses Tutorial werden wir MySQL als Standarddatenbank für Mattermost verwenden.

In diesem Schritt werden wir eine neue Datenbank und einen neuen Benutzer für die Mattermost-Installation erstellen.

Melden Sie sich in der MySQL-Shell mit Ihrem Root-Benutzer und Passwort wie unten beschrieben an.

mysql -u root -p

Erstellen Sie nun eine neue Datenbank und einen neuen Benutzer für Mattermost. Wir werden eine neue Datenbank ‚Mattermost‘ mit dem Benutzer ‚mmuser‘ und dem Passwort ‚mmuser-password‘ erstellen.

create database mattermost;
create user mmuser@localhost identified by 'mmuser-password';
grant all privileges on mattermost.* to mmuser@localhost;
flush privileges;

Geben Sie nun ‚exit‘ ein, um sich von der MySQL-Shell abzumelden.

Datenbank für Mattermost erstellen

Und als Ergebnis ist die MySQL-Datenbank und der Benutzer für die Mattermost-Installation erstellt worden.

Schritt 3 – Benutzer hinzufügen und Mattermost herunterladen

In diesem Schritt werden wir einen neuen Systembenutzer anlegen und den Mattermost-Quellcode herunterladen. Die Mattermost-Software läuft unter dem Benutzer namens „mattermost“, sie wird im Verzeichnis „/opt/mattermost“ installiert.

Erstellen Sie einen neuen Systembenutzer mit dem Namen „mattermost“ unter Verwendung des nachstehenden Befehls.

useradd --system --user-group mattermost

Gehen Sie nun in das Verzeichnis ‚/opt‘ und laden Sie den Mattermost-Quellcode mit dem untenstehenden curl-Befehl herunter.

cd /opt/
curl -o mattermost.tar.gz https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz

Extrahieren Sie den Mattermost-Quellcode und erstellen Sie ein neues „Daten“-Verzeichnis.

tar -xf mattermost.tar.gz
mkdir -p /opt/mattermost/data

Danach ändern wir den Besitzer des Verzeichnisses ‚/opt/mattermost‘ auf den ‚mattermost‘-Benutzer und machen es beschreibbar.

chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

Als Ergebnis wurde der Benutzer ‚mattermost‘ erstellt, und der Mattermost-Quellcode wurde in das Verzeichnis ‚/opt/mattermost‘ heruntergeladen.

Hinzufügen eines Linux-Systembenutzers für Mattermost

Schritt 4 – Konfigurieren von Mattermost

In diesem Schritt werden wir die Mattermost listen to address und die Datenbank einrichten. Der Mattermost-Dienst wird auf der lokalen IP-Adresse auf dem Standardport 8065 laufen und MySQL als Datenbanksystem verwenden.

Gehen Sie in das Verzeichnis ‚/opt/mattermost‘ und editieren Sie die Konfigurationsdatei ‚config.json‘ im Verzeichnis ‚config‘.

cd /opt/mattermost/
vim config/config.json

Ändern Sie bei der Option ‚ListenAddress‘ die IP-Adresse in ‚127.0.0.1‘.

    "ListenAddress": "127.0.0.1:8065",

Eine ‚SqlSettings‘, ändern Sie den DriverName in ‚mysql‘ und ändern Sie die ‚DataSource‘ mit der MySQL-Datenbank und dem Benutzer, die wir erstellt haben.

  "SqlSettings": {
    "DriverName": "mysql", 
    "DataSource": "dbuser:dbpassword@tcp(localhost:3306)/dbname?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Speichern und schließen.

Als nächstes initialisieren Sie die Mattermost-Installation mit dem folgenden Befehl.

sudo -u mattermost ./bin/mattermost

Unten sehen Sie das Ergebnis, das Sie erhalten werden.

Materie konfigurieren

Das Ergebnis ist, dass Mattermost auf der lokalen IP-Adresse ‚127.0.0.1‘ mit dem Port ‚8065‘ läuft, drücken Sie nun die Taste ‚Strg+c‘ zum Beenden.

Schritt 5 – Mattermost als Dienst einrichten

In diesem Schritt richten wir Mattermost als Systemdienst ein, und er läuft automatisch beim Systemstart, nachdem der MySQL-Datenbankdienst läuft.

Gehen Sie nun in das Verzeichnis ‚/lib/systemd/system‘ und legen Sie eine neue Servicedatei ‚mattermost.service‘ an.

cd /lib/systemd/system/
vim mattermost.service

Fügen Sie nun die folgende Konfiguration ein.

[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.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.target

Speichern und schließen.

Als nÃ?chstes laden Sie den systemd manager auf dem Debian-System neu.

systemctl daemon-reload

Danach starten Sie den Mattermost-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start mattermost
systemctl enable mattermost

Systemd Unit-Datei erstellen

Der Mattermost-Dienst ist eingerichtet und läuft, überprüfen Sie ihn mit dem folgenden Befehl.

systemctl status mattermost

Unten finden Sie das Ergebnis, das Sie erhalten werden.

Dienststatus prüfen

Das Ergebnis ist, dass der Mattermost-Dienst auf dem Debian-System läuft, und er wird automatisch beim Systemstart ausgeführt.

Schritt 6 – Installieren Sie Certbot Letsencrypt

In diesem Schritt werden wir das certbot-Tool installieren und das SSL Letsencrypt generieren. Wir werden die Mattermost-Installation mit dem SSL von Letsencrypt sichern.

Installieren Sie das certbot-Tool mit dem folgenden apt-Befehl.

sudo apt install certbot

Sobald die Installation abgeschlossen ist, generieren Sie SSL Letsencrypt mit dem untenstehenden certbot-Befehl.

certbot certonly --standalone --agree-tos -m your-email@gmail.com -d mattermost.hakase-labs.io

Als Ergebnis werden Ihre SSL-Zertifikate im Verzeichnis ‚/etc/letsencrypt/live/mattermost-hakase-labs.io‘ generiert.

Schritt 7 – Installieren und Konfigurieren von Nginx als Reverse-Proxy

In diesem Schritt installieren wir den Nginx-Webserver und richten ihn als Reverse-Proxy für den Mattermost-Dienst ein.

Installieren Sie Nginx mit dem folgenden apt-Befehl.

sudo apt install nginx -y

Sobald die Installation abgeschlossen ist, starten Sie den Nginx-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start nginx 
systemctl enable nginx

Der Nginx-Webserver ist einsatzbereit und läuft.

Gehen Sie als nächstes zum Konfigurationsverzeichnis ‚/etc/nginx‘ und erstellen Sie eine neue Konfiguration des virtuellen Hosts für mattermost.

cd /etc/nginx/
vim sites-available/mattermost

Ändern Sie den Domainnamen und den Pfad der SSL-Zertifikate mit Ihren eigenen und fügen Sie dann die Konfiguration darin ein.

upstream backend {
   server 127.0.0.1:8065;
   keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
listen         80;
server_name    edu.initrc.fun;
return         301 https://$server_name$request_uri;
}

server {
listen 443 ssl http2;
server_name    edu.initrc.fun

ssl on;
ssl_certificate /etc/letsencrypt/live/edu.initrc.fun/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/edu.initrc.fun/privkey.pem;
ssl_session_timeout 1d;
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;

location ~ /api/v[0-9]+/(users/)?websocket$ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 50M;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
client_body_timeout 60;
send_timeout 300;
lingering_timeout 5;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 90s;
proxy_pass http://backend;
}

location / {
client_max_body_size 50M;
proxy_set_header Connection "";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_cache mattermost_cache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale timeout;
proxy_cache_lock on;
proxy_http_version 1.1;
proxy_pass http://backend;
}
}

Speichern und schließen.

Als nächstes erstellen Sie das Nginx-Cache-Verzeichnis und ändern den Eigentümer dieses Verzeichnisses auf den Standardbenutzer ‚www-data‘.

mkdir -p /var/cache/nginx
chown -R www-data:www-data /var/cache/nginx

Aktivieren Sie danach den Mattermost virtualhost, testen Sie dann die nginx-Konfiguration und vergewissern Sie sich, dass kein Fehler vorliegt.

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
nginx -t

Starten Sie nun den Nginx-Dienst mit dem systemctl-Befehl unten neu.

systemctl restart nginx

Damit ist die Installation und Konfiguration von Nginx als Reverse-Proxy für die Mattermost abgeschlossen. Und wir sind bereit, die Mattermost-Installation zu testen.

Konfigurieren von Nginx

Schritt 8 – Testen

Öffnen Sie Ihren Webbrowser und geben Sie den Domain-Namen Ihrer Mattermost-Installations-URL in die Adressleiste ein. Meiner ist:

https://mattermost.hakase-labs.io/

Nun müssen Sie ein neues erstes Konto des Mattermost erstellen, dies wird der Mattermost-Administrator sein.

Wichtigstes Web-Installationsprogramm

Geben Sie Ihren Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort ein und klicken Sie auf die Schaltfläche „Konto erstellen“.

Erstellen Sie ein neues erstes Team auf Mattermost.

Ein Team erstellen

Geben Sie den Namen Ihres ersten Teams ein und klicken Sie auf ‚Weiter‘.

Teamname festlegen

Und die Team-URL wird der Teamname sein, klicken Sie auf ‚Fertigstellen‘, um fortzufahren.

Team-URL

Und Sie werden automatisch dem Standardkanal „Off-Topic“ und „Town Square“ beitreten.

Wichtigste Dashboard

Infolgedessen wurde die Installation von Mattermost auf dem Debian Buster 10 mit MySQL-Datenbank und Nginx-Webserver erfolgreich abgeschlossen.

Das könnte dich auch interessieren …