Mattermost ist ein kostenloses, Open-Source- und selbst gehostetes Messaging-System für die Zusammenarbeit von Unternehmensteams. Es ist in Golang und React geschrieben und verwendet MySQL/MariaDB/PostgreSQL als Datenbank-Backend. Es bietet Desktop-Clients für Windows, macOS und Linux sowie mobile Anwendungen für iOS und Android. Es ist Slack sehr ähnlich und bringt Ihre gesamte Teamkommunikation an einem Ort zusammen. Es bietet sehr nützliche Funktionen, darunter Einzel- und Gruppennachrichten, Dateifreigabe, Videoanrufe, benutzerdefinierte Emojis, Webhooks und Befehle und vieles mehr.
In diesem Tutorial zeigen wir Ihnen, wie Sie Mattermost unter CentOS 8 installieren.
Voraussetzungen
- Ein Server mit CentOS 8.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Installieren und konfigurieren Sie die MariaDB-Datenbank
Mattermost verwendet MariaDB/MySQL als Datenbank-Backend. MariaDB muss also auf Ihrem Server installiert sein. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:
dnf install mariadb-server -y
Starten Sie nach der Installation den MariaDB-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl start mariadb
systemctl enable mariadb
Standardmäßig ist MariaDB nicht gesichert und das Root-Passwort ist in CentOS 8 nicht gesetzt. Sie können es also mit dem folgenden Befehl setzen:
mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
Aktuelles Passwort für Root eingeben (Eingabe für keins):Root-Passwort setzen? [J/n] JNeues Passwort:Neues Passwort erneut eingeben:Anonyme Benutzer entfernen? [J/n] YRoot-Anmeldung aus der Ferne verbieten? [J/n] YTestdatenbank und Zugriff darauf entfernen? [J/n] YBerechtigungstabellen jetzt neu laden? [J/n] Ja
Wenn Sie fertig sind, melden Sie sich mit dem Root-Benutzer bei MariaDB an:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein und erstellen Sie dann mit dem folgenden Befehl eine Datenbank und einen Benutzer für Mattermost:
MariaDB [(keine)]> DATENBANK ERSTELLEN mattermostdb;
MariaDB [(keine)]> GEWÄHREN SIE ALLE PRIVILEGIEN AUF mattermostdb.* AN [email protected] IDENTIFIED BY 'password';
Löschen Sie als Nächstes die Berechtigungen und verlassen Sie die MariaDB-Shell mit dem folgenden Befehl:
MariaDB [(keine)]> FLUSH PRIVILEGES;
MariaDB [(keine)]> EXIT;
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Installieren Sie Mattermost
Zuerst müssen Sie einen separaten Benutzer erstellen, um Mattermost auszuführen. Sie können es mit dem folgenden Befehl erstellen:
useradd -d /opt/mattermost -U -M mattermost
Laden Sie als Nächstes die neueste Version von Mattermost mit dem folgenden Befehl herunter:
wget https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz
Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar -xvzf mattermost-5.21.0-linux-amd64.tar.gz
Verschieben Sie als Nächstes das extrahierte Verzeichnis mit dem folgenden Befehl nach /opt:
mv mattermost /opt/
Erstellen Sie als Nächstes ein Datenverzeichnis in Mattermost und geben Sie Mattermost mit dem folgenden Befehl die richtigen Berechtigungen:
mkdir /opt/mattermost/data
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Mattermost konfigurieren
Als nächstes müssen Sie Ihre Datenbank in Mattermost definieren. Sie können dies tun, indem Sie die Datei config.json:
bearbeitennano /opt/mattermost/config/config.json
Ändern Sie die folgenden Zeilen gemäß Ihren Datenbankeinstellungen:
"SqlSettings":{ "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. Wechseln Sie dann in das Verzeichnis /opt/mattermost und starten Sie den Mattermost-Server mit folgendem Befehl:
cd /opt/mattermost
sudo -u mattermost bin/mattermost
Sobald der Server erfolgreich gestartet wurde, sollten Sie die folgende Ausgabe erhalten:
{"level":"info","ts":1585379681.8383002,"caller":"utils/i18n.go:83","msg":"Geladene Systemübersetzungen","for locale":"en" ,"from locale":"/opt/mattermost/i18n/en.json"}{"level":"info","ts":1585379681.83874,"caller":"app/server_app_adapters.go:58","msg ":"Server initialisiert..."}{"level":"info","ts":1585379681.8470004,"caller":"sqlstore/supplier.go:221","msg":"Ping von SQL"," database":"master"}{"level":"info","ts":1585379684.7858346,"caller":"sqlstore/upgrade.go:112","msg":"Die Version des Datenbankschemas wurde festgelegt", "version":"5.21.0"}{"level":"error","ts":1585379690.8182986,"caller":"app/server_app_adapters.go:129","msg":"SiteURL muss gesetzt werden. Einige Die Funktionen funktionieren nicht korrekt, wenn die SiteURL nicht festgelegt ist. Weitere Informationen finden Sie in der Dokumentation:http://about.mattermost.com/default-site-url"}{"level":"info","ts":1585379690.821083,"caller ":"app/license.go:39","msg":"Lizenzschlüssel von https://mattermost.com erforderlich, um Unternehmensfunktionen freizuschalten."}
Drücken Sie als Nächstes STRG + C, um den Mattermost-Server zu stoppen.
Erstellen Sie eine Systemd-Dienstdatei für Mattermost
Als nächstes müssen Sie eine systemd-Dienstdatei erstellen, um den Mattermost-Dienst zu verwalten. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/mattermost.service
Fügen Sie die folgenden Zeilen hinzu:
[Unit]Description=MattermostAfter=syslog.target network.target mariadb.service[Service]Type=notifyWorkingDirectory=/opt/mattermostUser=mattermostExecStart=/opt/mattermost/bin/mattermostPIDFile=/var/run/mattermost.pidTimeoutStartSec =3600LimitNOFILE=49152[Installieren]WantedBy=multi-user.target
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Starten Sie als Nächstes den Mattermost-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl start mattermost
systemctl enable mattermost
Sie können den Status des Mattermost-Dienstes auch mit dem folgenden Befehl überprüfen:
systemctl status matters
Sie sollten die folgende Ausgabe erhalten:
Zu diesem Zeitpunkt läuft der Mattermost-Server und lauscht auf Port 8065. Sie können dies mit dem folgenden Befehl überprüfen:
netstat -antup | grep 8065
Sie sollten die folgende Ausgabe erhalten:
tcp6 0 0 :::8065 :::* LISTEN 15204/mattermost
Konfigurieren Sie Nginx als Reverse-Proxy für Mattermost
Es empfiehlt sich, Nginx für eine bessere Leistung und Sicherheit als Reverse-Proxy zu installieren und zu konfigurieren.
Installieren Sie zuerst den Nginx-Webserver mit dem folgenden Befehl:
dnf install nginx -y
Starten Sie nach der Installation des Nginx-Webservers den Nginx-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl start nginx
systemctl enable nginx
Erstellen Sie als Nächstes mit dem folgenden Befehl eine neue virtuelle Nginx-Hostdatei für Mattermost:
nano /etc/nginx/conf.d/mattermost.conf
Fügen Sie die folgenden Zeilen hinzu:
Upstream Mattermost { Server 127.0.0.1:8065; keepalive 32;}proxy_cache_path /var/cache/nginx level=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;server { listen 80; server_name mattermost.example.com; Standort ~ /api/v[0-9]+/(users/)?websocket$ { proxy_set_header Upgrade $http_upgrade; proxy_set_header Verbindung "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 $schema; proxy_set_header X-Frame-Optionen SAMEORIGIN; Proxy_buffers 256 16k; Proxy_buffer_size 16k; client_body_timeout 60; send_timeout 300; verweilendes_timeout 5; Proxy_connect_timeout 90; proxy_send_timeout 300; Proxy_read_timeout 90s; Proxy_pass http://mattermost; } Ort / { Client_max_body_size 50M; proxy_set_header Verbindung ""; 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 $schema; proxy_set_header X-Frame-Optionen SAMEORIGIN; Proxy_buffers 256 16k; Proxy_buffer_size 16k; Proxy_read_timeout 600s; proxy_cache mattermost_cache; proxy_cache_revalidate an; Proxy_cache_min_uses 2; Proxy_cache_use_stale Zeitüberschreitung; proxy_cache_lock an; Proxy_http_Version 1.1; Proxy_pass http://mattermost; }}
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Überprüfen Sie dann Nginx mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Sie sollten die folgende Ausgabe erhalten:
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
Starten Sie abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet nginx neu
Zu diesem Zeitpunkt ist der Nginx-Webserver so konfiguriert, dass er Mattermost bedient. Sie können jetzt mit dem nächsten Schritt fortfahren.
Konfigurieren Sie SELinux und Firewalld
Standardmäßig ist SELinux in CentOS 8 aktiviert. Es wird empfohlen, es für Mattermost zu deaktivieren. Sie können es deaktivieren, indem Sie die Datei /etc/selinux/config bearbeiten:
nano /etc/selinux/config
Suchen Sie die folgende Zeile:
SELINUX=erzwingen
Und ersetzen Sie es durch die folgende Zeile:
SELINUX=permissiv
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann Ihr System neu, um die Änderungen zu übernehmen.
Als nächstes müssen Sie Port 80 durch Firewalld zulassen. Sie können es mit dem folgenden Befehl zulassen:
firewall-cmd --add-service=http --permanent
Als nächstes laden Sie die Firewall neu, um die Änderungen zu übernehmen:
firewall-cmd --reload
Greifen Sie auf die Mattermost-Webschnittstelle zu
Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://mattermost.example.com ein. Sie sollten die Mattermost-Benutzererstellungsseite sehen:
Geben Sie Ihre E-Mail-Adresse, Ihren Benutzernamen und Ihr Passwort ein und klicken Sie auf Erstellen Konto Taste. Sie sollten die folgende Seite sehen:
Klicken Sie anschließend auf Erstellen ein neues Team um Ihr Team zu erstellen. Sie sollten die folgende Seite sehen:
Geben Sie Ihren Teamnamen ein und klicken Sie auf Weiter Taste. Sie sollten die folgende Seite sehen:
Geben Sie Ihre Team-URL ein und klicken Sie auf Fertig stellen um die Installation abzuschließen. Sie sollten das Mattermost-Dashboard auf der folgenden Seite sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Mattermost erfolgreich auf dem CentOS 8-Server installiert und konfiguriert. Sie können jetzt ein Team für Ihre Organisation erstellen und mit der Zusammenarbeit mit Ihrem Team beginnen.