Wie installiert man das Mattermost Team Messaging System unter Ubuntu 20.04

Mattermost ist eine quelloffene und selbst gehostete Messaging-Anwendung, die für Chat, Dateifreigabe, Suche und Integrationen verwendet wird. Es ist eine Alternative zum Slack-Chat, die Ihre gesamte Teamkommunikation an einen Ort bringt. Es ist in React und Golang geschrieben und verwendet PostgreSQL oder MySQL als Datenbank im Backend. Er bietet eine reichhaltige Palette an Funktionen, darunter Push-Benachrichtigungen, unbegrenzte Suchhistorie, benutzerdefinierte Emojis, Webhooks & Befehle, Active Directory, Unterstützung für den Einsatz von Multi-Knoten-Datenbanken, Forum, Diskussionsforum und vieles mehr.

In diesem Tutorial zeigen wir Ihnen, wie Sie Mattermost mit Nginx und Let’s Encrypt SSL auf Ubuntu 20.04 installieren.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Einen gültigen Domänennamen, der auf Ihre Server-IP zeigt.
  • Ein Root-Passwort wird auf dem Server konfiguriert.

Erste Schritte

Zunächst wird empfohlen, Ihre Systempakete mit der neuesten Version zu aktualisieren. Sie können sie aktualisieren, indem Sie den folgenden Befehl ausführen:

apt-get update -y

Sobald alle Pakete aktualisiert sind, installieren Sie weitere erforderliche Abhängigkeiten, indem Sie den folgenden Befehl ausführen:

apt-get install curl wget vim git unzip gnupg2 -y

Nachdem Sie alle erforderlichen Pakete installiert haben, können Sie mit dem nächsten Schritt fortfahren.

Installieren und Konfigurieren von MariaDB

Mattermost verwendet MySQL/MariaDB als Datenbank-Backend. Der MariaDB-Server muss also auf Ihrem Server installiert sein. Wenn er nicht installiert ist, können Sie ihn mit dem folgenden Befehl installieren:

apt-get install mariadb-server -y

Nachdem Sie den MariaDB-Server installiert haben, loggen Sie sich mit folgendem Befehl in die MariaDB ein:

mysql

Sobald Sie sich angemeldet haben, erstellen Sie eine Datenbank und einen Benutzer für Mattermost mit folgendem Befehl:

MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> CREATE USER 'mattermost'@'%' IDENTIFIED BY 'password';

Als nächstes gewähren Sie Mattermost alle Privilegien mit dem folgenden Befehl:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mattermost'@'%';

Als nächstes löschen Sie die Privilegien und verlassen die MariaDB-Shell mit dem folgenden Befehl:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Sobald Ihre MariaDB-Datenbank konfiguriert ist, können Sie mit dem nächsten Schritt fortfahren.

Installieren und Konfigurieren von Mattermost

Zuerst müssen Sie die neueste Version von Mattermost von seiner offiziellen Website herunterladen. Sie können sie mit dem folgenden Befehl herunterladen:

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

Nach dem Herunterladen extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf mattermost-5.24.2-linux-amd64.tar.gz

Als nächstes kopieren Sie das extrahierte Verzeichnis in das Verzeichnis /opt:

cp -r mattermost /opt

Als nächstes erstellen Sie ein Datenverzeichnis für Mattermost:

mkdir /opt/mattermost/data

Als nächstes müssen Sie einen separaten Benutzer erstellen, um Mattermost auszuführen. Sie können ihn mit dem folgenden Befehl erstellen:

useradd --system --user-group mattermost

Ändern Sie als nächstes den Eigentümer des Mattermost-Verzeichnisses in Mattermost und erteilen Sie die entsprechenden Berechtigungen mit dem folgenden Befehl:

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

Als nächstes bearbeiten Sie die Mattermost-Standardkonfigurationsdatei und definieren Ihre Datenbankeinstellungen und Site-URL.

nano /opt/mattermost/config/config.json

Ändern Sie die folgenden Zeilen entsprechend Ihren Bedürfnissen:

    "SiteURL": "https://mattermost.linuxbuz.com",

    "DriverName": "mysql",
    "DataSource": "mattermost:[email protected](localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Erstellen Sie eine Systemdienstdatei für Mattermost

Als nächstes müssen Sie eine Servicedatei systemd erstellen, um den Mattermost-Dienst zu verwalten. Sie können sie mit dem folgenden Befehl erstellen:

nano /lib/systemd/system/mattermost.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=notify
User=mattermost
Group=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
LimitNOFILE=49152

[Install]
WantedBy=mariadb.service

Speichern und schließen Sie die Datei und relaodieren Sie dann den systemd-Daemon mit dem folgenden Befehl:

systemctl daemon-reload

Als nächstes starten Sie den Mattermost-Dienst und aktivieren ihn beim Systemneustart mit folgendem Befehl:

systemctl start mattermost
systemctl enable mattermost

Überprüfen Sie als nächstes den Status des Mattermost-Dienstes mit dem folgenden Befehl:

systemctl status mattermost

Sie sollten die folgende Ausgabe erhalten:

? mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-08-01 09:12:52 UTC; 17s ago
   Main PID: 4106 (mattermost)
      Tasks: 20 (limit: 2353)
     Memory: 85.9M
     CGroup: /system.slice/mattermost.service
             ??4106 /opt/mattermost/bin/mattermost
             ??4198 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.131499,"caller":"mlog/sugar.go:19","msg":"Sent notification of ne>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1841655,"caller":"jobs/workers.go:73","msg":"Starting workers"}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1842792,"caller":"bleveengine/bleve.go:267","msg":"UpdateConf Ble>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1930475,"caller":"jobs/schedulers.go:74","msg":"Starting schedule>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.20063,"caller":"app/web_hub.go:83","msg":"Starting websocket hubs>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2099638,"caller":"app/license.go:37","msg":"License key from http>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2205582,"caller":"app/server.go:525","msg":"Starting Server..."}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2208374,"caller":"app/server.go:594","msg":"Server is listening o>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2211802,"caller":"commands/server.go:106","msg":"Sending systemd >
Aug 01 09:12:52 ubuntu2004 systemd[1]: Started Mattermost.

Zu diesem Zeitpunkt läuft und hört Mattermost auf Port 8065.

Konfigurieren Sie Nginx als Reverse-Proxy

Als nächstes müssen Sie Nginxx als Reverse-Proxy für Mattermost konfigurieren. Installieren Sie zunächst das Nginx-Paket mit dem folgenden Befehl:

apt-get install nginx -y

Erstellen Sie nach der Installation eine Nginx-Konfigurationsdatei für den virtuellen Host mit dem folgenden Befehl:

nano /etc/nginx/sites-available/mattermost.conf

Fügen Sie die folgenden Zeilen hinzu:

upstream mattermost {
   server localhost: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 mattermost.linuxbuz.com;

   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://mattermost;
   }

   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://mattermost;
   }
}

Speichern und schließen Sie die Datei und aktivieren Sie dann die Konfiguration des virtuellen Hosts mit dem folgenden Befehl:

ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf

Überprüfen Sie als nächstes die Nginx auf Konfigurationsfehler:

nginx -t

Sie sollten die folgende Ausgabe erhalten:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie schließlich den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Sichere Sache mit Let’s Encrypt SSL

Zuerst müssen Sie den Certbot-Client in Ihrem System installieren, um Let’s Encrypt SSL zu verwalten. Sie können ihn mit dem folgenden Befehl installieren:

apt-get install python3-certbot-nginx -y

Führen Sie nach der Installation von Certbot den folgenden Befehl aus, um Let’s Encrypt SSL für Ihre Website zu installieren.

certbot --nginx -d mattermost.linuxbuz.com

Sie werden gebeten, eine gültige E-Mail-Adresse anzugeben und die unten dargestellte Servicebedingung zu akzeptieren:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mattermost.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/mattermost.conf

Wählen Sie als nächstes, ob HTTP-Verkehr zu HTTPS umgeleitet werden soll oder nicht:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Geben Sie 2 ein und drücken Sie Enter, um Let’s Encrypt SSL auf Ihrer Domain zu installieren. Nach der Installation sollten Sie die folgende Ausgabe sehen:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/mattermost.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://mattermost.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=mattermost.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Zugriff auf Mattermost Web Interface

Öffnen Sie nun Ihren Webbrowser und geben Sie die URL https://mattermost.linuxbuz.com ein. Sie werden auf den Anmeldebildschirm von Mattermost umgeleitet:

Wichtigste Anmeldung

Geben Sie Ihre E-Mail-Adresse, Ihren Namen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Create Account. Sie sollten den folgenden Bildschirm sehen:

Wichtigstes Team Kommunikation

Klicken Sie auf die Schaltfläche Create a team. Sie sollten den folgenden Bildschirm sehen:

Name der Mannschaft

Geben Sie Ihren Teamnamen an und klicken Sie auf die Schaltfläche Weiter. Sie sollten den folgenden Bildschirm sehen:

Team-URL

Geben Sie Ihre Team-URL an und klicken Sie auf die Schaltfläche Fertigstellen. Sie sollten den Bildschirm Materielles Willkommen sehen:

Wichtigstes Armaturenbrett

Klicken Sie auf die Schaltfläche Tutorials überspringen. Auf dem folgenden Bildschirm sollten Sie das Mattermost-Dashboard sehen:

Materieller Chat

Schlussfolgerung

In dieser Anleitung haben Sie gelernt, wie Sie die Anwendung Mattermost Team Messaging auf einem Ubuntu 20.04-Server installieren. Sie haben auch gelernt, wie man Nginx als Reverse-Proxy konfiguriert und mit Let’s Encrypt SSL sichert. Sie können nun die Mattermost-Dienste erkunden und mit Ihrem Team zusammenarbeiten.

Das könnte dich auch interessieren …