Installation · 15 min read · Jan 23, 2026

Mattermost mit PostgreSQL und Nginx auf CentOS 7 installieren

Mattermost ist eine Open-Source, selbstgehostete Slack-Alternative. Mattermost ist moderne Kommunikation hinter Ihrer Firewall.

Als Alternative zu proprietärem SaaS-Messaging bringt Mattermost alle Ihre Teamkommunikation an einem Ort zusammen, wodurch sie durchsuchbar und überall zugänglich ist.

Mattermost ist “Slack-kompatibel, aber nicht Slack-begrenzt” und unterstützt eine Superset von Slacks eingehenden und ausgehenden Webhook-Integrationen, einschließlich der Kompatibilität mit bestehenden Slack-Integrationen. Von Ihren bestehenden Slack-Teams aus können Sie Benutzer, öffentliche Kanalhistorie und sogar Farbschemata in Mattermost importieren.

Namen, Variablen und Konten, die in diesem HowTo verwendet werden

lokale IP des Servers                 : 192.168.2.100  
FQDN des Servers                     : mattermost.example.com  
Name der Mattermost-Datenbank        : mattermost  
Benutzer zum Zugriff auf die Mattermost-Datenbank : mmuser  
Passwort für mmuser in der Datenbank: DBAss47slX3

Voraussetzungen

Dieses Howto erklärt die Installation von Mattermost auf CentOS7 unter Verwendung von PostgreSQL als Datenbank-Backend. Für die Zwecke dieses Leitfadens gehen wir davon aus, dass wir alles auf einem einzelnen Server installieren, aber für erfahrene Benutzer wäre es einfach, die Teile zu zerlegen und jede Komponente (z. B. den Datenbankserver) auf einer anderen Maschine zu installieren. Die Installation wurde mit dem Benutzer root durchgeführt, aber Sie könnten natürlich auch einen sudo-fähigen Benutzer verwenden.

Wir gehen auch davon aus, dass der Server eine IP-Adresse von 192.168.2.100 hat und dass DNS auf mattermost.example.com aufgelöst wird. Ersetzen Sie also überall in diesem HowTo, wo Sie 192.168.2.100 oder mattermost.example.com lesen, durch die IP-Adresse Ihres Servers.

Bevor Sie beginnen können, benötigen Sie eine minimale Installation von CentOS7. Nach der Installation stellen Sie sicher, dass Sie die E-Mail korrekt einrichten (Postfix-Konfiguration), damit Ihr System in der Lage ist, E-Mails zu senden (z. B. über einen Smart Host oder eine ähnliche Lösung).

Bitte führen Sie einige kleine Überprüfungen durch, bevor Sie fortfahren:

Versuchen Sie, eine E-Mail von einem Terminal auf Ihrem Server zu senden:

[root@mattermost ~]echo -en "Subject: Testmail\n\nDies ist ein Test\n" | sendmail [email protected]

(ersetzen Sie [email protected] durch eine E-Mail-Adresse, an die Ihr Server senden können sollte). Stellen Sie sicher, dass Sie eine E-Mail vom System erhalten haben!

Überprüfen Sie die Namensauflösung für mattermost.example.com

Von einem anderen Computer (nicht dem Server, den wir einrichten möchten) versuchen Sie, mattermost.example.com zu pingen. Sie sollten ein positives Ergebnis erhalten:

C:\>ping mattermost.example.com  
Pinging mattermost.witron.com [192.168.2.100] mit 32 Bytes Daten:  
Antwort von 192.168.2.100: Bytes=32 Zeit<1ms TTL=64  
Antwort von 192.168.2.100: Bytes=32 Zeit<1ms TTL=64  
Antwort von 192.168.2.100: Bytes=32 Zeit<1ms TTL=64  
Antwort von 192.168.2.100: Bytes=32 Zeit<1ms TTL=64  
  
Ping-Statistiken für 192.168.2.100:  
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),  
Ungefähre Rundreisezeiten in Millisekunden:  
Minimum = 0ms, Maximum = 0ms, Durchschnitt = 0ms

Überprüfen Sie die Internetverbindung

Wir werden jetzt das Paket wget installieren (das wir später benötigen).

[root@mattermost ~] yum -y install wget

und verwenden Sie es, um unsere öffentliche IP zu bestimmen. So können wir unsere Internetverbindung überprüfen.

[root@mattermost ~] wget http://ipinfo.io/ip -qO -  
46.101.122.124

Das Ergebnis sollte Ihre öffentliche IP-Adresse sein.

Überprüfen Sie den Status der Firewall und deaktivieren Sie sie vorerst

Bitte überprüfen Sie, ob Ihre CentOS7-Installation firewalld aktiviert hat. Sie können dies überprüfen, indem Sie eingeben

[root@mattermost ~] systemctl status firewalld

Wenn es etwas anzeigt wie

Aktiv: aktiv (laufend) seit …

bitte schalten Sie es aus und deaktivieren Sie es mit diesen 2 Befehlen.

[root@mattermost ~] systemctl stop firewalld  
[root@mattermost ~] systemctl disable firewalld

Am Ende dieses Tutorials finden Sie Anweisungen, wie Sie firewalld wieder aktivieren und wie Sie es korrekt einrichten, um mit Mattermost zu arbeiten.

Wenn Sie alle oben genannten Überprüfungen bestehen oder wissen, dass Sie ein verwendbares System für dieses Tutorial haben, können Sie jetzt fortfahren.

PostgreSQL-Datenbankserver installieren

Wir werden PostgreSQL als Datenbank-Backend für Mattermost verwenden. Installieren Sie es mit dem folgenden Befehl:

[root@mattermost ~] yum -y install postgresql-server postgresql-contrib

Nach der Installation müssen wir die Datenbank initialisieren.

[root@mattermost ~] postgresql-setup initdb  
Initialisierung der Datenbank ... OK

Dann starten Sie PostgreSQL und aktivieren Sie es für den automatischen Start.

[root@mattermost ~]# systemctl start postgresql  
[root@mattermost ~]# systemctl enable postgresql  
Symlink erstellt von /etc/systemd/system/multi-user.target.wants/postgresql.service zu /usr/lib/systemd/system/postgresql.service.

Bitte überprüfen Sie, ob PostgreSQL läuft, indem Sie ausführen.

[root@mattermost ~]# systemctl status postgresql

Es sollte etwas Ähnliches berichten (stellen Sie sicher, dass irgendwo im Text Aktiv: aktiv (laufend) steht).

? postgresql.service - PostgreSQL-Datenbankserver  
Geladen: geladen (/usr/lib/systemd/system/postgresql.service; aktiviert; Hersteller-Voreinstellung: deaktiviert)  
Aktiv: aktiv (laufend) seit Fri 2016-03-04 11:37:50 CET; 44s ago  
Haupt-PID: 17660 (postgres)  
CGroup: /system.slice/postgresql.service  
??17660 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432  
??17661 postgres: Logger-Prozess  
??17663 postgres: Checkpointer-Prozess  
??17664 postgres: Schreibprozess  
??17665 postgres: wal-Schreibprozess  
??17666 postgres: Autovacuum-Launcher-Prozess  
??17667 postgres: Statistiksammler-Prozess  
  
Mar 04 11:37:48 mattermost systemd[1]: Starting PostgreSQL-Datenbankserver...  
Mar 04 11:37:50 mattermost systemd[1]: PostgreSQL-Datenbankserver gestartet.  
Mar 04 11:37:59 mattermost systemd[1]: PostgreSQL-Datenbankserver gestartet.

Erstellen Sie die Mattermost-Datenbank und den Datenbankbenutzer

PostgreSQL hat automatisch einen Benutzer und eine Gruppe mit dem Namen postgres erstellt. Wir verwenden den Benutzer postgres, um eine Verbindung zur Datenbank-Engine herzustellen und eine Datenbank sowie einen Benutzer einzurichten, der darauf zugreifen kann.

Starten Sie eine Eingabeaufforderung als Benutzer postgres:

[root@mattermost ~]# sudo -i -u postgres

Ihre Eingabeaufforderung ändert sich jetzt zu:

-bash-4.2$

Jetzt verbinden wir uns mit dem Datenbankserver.

-bash-4.2$ psql  
psql (9.2.15)  
Geben Sie "help" für Hilfe ein.  
postgres=#

Innerhalb der PostgreSQL-Eingabeaufforderung erstellen wir jetzt eine Datenbank mit dem Namen ‘mattermost’.

postgres=# CREATE DATABASE mattermost;  
Datenbank erstellen

Jetzt erstellen wir einen Benutzer ‘ mmuser ‘ mit dem Passwort ‘ DBAss47slX3‘.

postgres=# **CREATE USER mmuser WITH PASSWORD '*DBAss47slX3*';  
Rolle erstellen

Gewähren Sie dem Benutzer Zugriff auf die Mattermost-Datenbank, indem Sie eingeben:

postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;  
Gewähren
postgres=#

Wir können dann die PostgreSQL-Eingabeaufforderung verlassen, indem wir eingeben:

postgres=# \q  
-bash-4.2$

Und dann die Shell, die wir als Benutzer ‘ postgres ‘ gestartet haben, mit:

-bash-4.2$ exit  
logout  
[root@mattermost ~]#

Zugriff auf die PostgreSQL-Datenbank von localhost über Benutzername/Passwort erlauben

Später möchte unsere Mattermost-Instanz mit der PostgreSQL-Datenbank kommunizieren und sich mit Benutzername und Passwort authentifizieren. Um dies zu ermöglichen, müssen wir die PostgreSQL-Konfiguration leicht ändern. Öffnen Sie die Datei:

vi /var/lib/pgsql/data/pg_hba.conf

mit einem Editor wie vi oder nano und ändern Sie die Zeile:

host    all             all             127.0.0.1/32            ident

in:

host    all             all             127.0.0.1/32            md5

Speichern Sie die Datei und starten Sie dann PostgreSQL neu.

[root@mattermost ~]# systemctl restart postgresql

Wir sollten überprüfen, ob wir das richtig gemacht haben, indem wir uns mit unserem zuvor erstellten Benutzer und Passwort (verwenden Sie Ihr Passwort, wenn Sie ein anderes auf Ihrem Server verwendet haben) mit dem Datenbankserver verbinden:

[root@mattermost ~]# psql --host=127.0.0.1 --dbname=mattermost --username=mmuser --password  
Passwort für Benutzer mmuser:  
psql (9.2.15)  
Geben Sie "help" für Hilfe ein.  
  
mattermost=> \q  
[root@mattermost ~]#

Unser PostgreSQL-Server und die Datenbank sind jetzt bereit für Mattermost!

Mattermost herunterladen und extrahieren

Lassen Sie uns eine Kopie des Mattermost-Servers direkt aus ihrem Github-Repository herunterladen (zum Zeitpunkt der Erstellung dieses Tutorials war Version v2.0.0 die aktuelle Version) mit wget.

[root@mattermost ~]# cd  
[root@mattermost ~]# wget -q "https://github.com/mattermost/platform/releases/download/v2.0.0/mattermost.tar.gz" -O mattermost.tar.gz

Jetzt extrahieren wir das Archiv und legen die extrahierten Dateien an ihrem Zielort ab (in diesem Fall verwenden wir /opt/mattermost).

[root@mattermost ~]# tar -xvzf mattermost.tar.gz  
[root@mattermost ~]# mv mattermost /opt

Mattermost installieren

Erstellen Sie einen Benutzer, der den Mattermost-Daemon ausführt

Wir werden Mattermost später als Daemon ausführen. Daher richten wir einen neuen Benutzer auf unserem System mit dem Namen ‘ mattermost ‘ ein. Er wird die Mattermost-Instanz später ausführen. Führen Sie den folgenden Befehl aus, um einen Systembenutzer und eine Gruppe ‘ mattermost ‘ zu erstellen:

[root@mattermost ~]# useradd -r mattermost -U -s /sbin/nologin

Erstellen Sie einen Datenordner für Mattermost

Mattermost möchte einige seiner Daten, z. B. hochgeladene Dateien usw., in einem Ordner speichern. Daher müssen wir diesen Ordner erstellen. Er kann überall auf der Festplatte sein, muss jedoch für den Benutzer ‘ mattermost ‘ zugänglich sein. Ich habe mich entschieden, ‘/opt/mattermost/data’ zu verwenden. Erstellen Sie den Ordner mit dem folgenden Befehl:

[root@mattermost ~]# mkdir -p /opt/mattermost/data

Setzen Sie den Besitzer des Mattermost-Verzeichnisses

Jetzt setzen wir die Gruppe und den Besitzer des Mattermost-Verzeichnisses auf unseren zuvor erstellten Benutzer und die Gruppe:

[root@mattermost ~]# chown -R mattermost:mattermost /opt/mattermost  
[root@mattermost ~]# chmod -R g+w /opt/mattermost**

Konfigurieren Sie die Datenbankverbindung für Mattermost

Um Mattermost zu sagen, wie es sich mit unserer PostgreSQL-Datenbank verbinden soll, müssen wir die Konfigurationsdatei bearbeiten:

*/opt/mattermost/config/config.json*

Bitte finden Sie den Abschnitt ‘ SqlSettings ‘ und ändern Sie ihn nach unseren Bedürfnissen:

VORHER

"SqlSettings": {  
 "DriverName": "mysql",  
 "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8",  
 "DataSourceReplicas": [],  
 "MaxIdleConns": 10,  
 "MaxOpenConns": 10,  
 "Trace": false,  
 "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"  
 },

NACHHER

"SqlSettings": {  
 "DriverName": "postgres",  
 "DataSource": "postgres://mmuser:[email protected]:5432/mattermost?sslmode=disable&connect_timeout=10",  
 "DataSourceReplicas": [],  
 "MaxIdleConns": 10,  
 "MaxOpenConns": 10,  
 "Trace": false,  
 "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"  
 },

Sie können den AtRestEncryptKey so belassen, wie er ist!

Konfigurieren Sie die E-Mail-Konnektivität für Mattermost

Wieder müssen wir die Konfigurationsdatei bearbeiten

*/opt/mattermost/config/config.json*

Suchen Sie den Abschnitt ‘EmailSettings’ und ändern Sie ihn nach unseren Bedürfnissen:

VORHER

 "EmailSettings": {  
 "EnableSignUpWithEmail": true,  
 "EnableSignInWithEmail": true,  
 "EnableSignInWithUsername": false,  
 "SendEmailNotifications": false,  
 "RequireEmailVerification": false,  
 "FeedbackName": "",  
 "FeedbackEmail": "",  
 "SMTPUsername": "",  
 "SMTPPassword": "",  
 "SMTPServer": "",  
 "SMTPPort": "",  
 "ConnectionSecurity": "",  
 "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",  
 "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",  
 "SendPushNotifications": false,  
 "PushNotificationServer":  
},  

NACHHER

 "EmailSettings": {  
 "EnableSignUpWithEmail": true,  
 "EnableSignInWithEmail": true,  
 "EnableSignInWithUsername": false,  
 "SendEmailNotifications": false,  
 "RequireEmailVerification": false,  
 "FeedbackName": "",  
 "FeedbackEmail": "",  
 "SMTPUsername": "",  
 "SMTPPassword": "",  
 "SMTPServer": "127.0.0.1",  
 "SMTPPort": "25",  
 "ConnectionSecurity": "",  
 "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",  
 "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",  
 "SendPushNotifications": false,  
 "PushNotificationServer": ""  
},

Wir verwenden 127.0.0.1 und Port 25, weil wir unsere lokale Postfix-Installation verwenden, die bereits konfiguriert ist, um E-Mails nach außen senden zu können. Wenn Ihre Konfiguration hier anders ist, müssen Sie die richtigen Werte festlegen!

Konfigurieren Sie Mattermost so, dass es nur auf der internen Schnittstelle (127.0.0.1) hört

Standardmäßig wird die Mattermost-Serverinstanz auf allen Schnittstellen am Port 8065 (:8065) hören. Da wir einen Nginx-Server vor Mattermost setzen möchten, ändern wir dieses Verhalten, sodass es nur auf localhost (127.0.0.1:8065) hört.

Ändern Sie einfach die Zeile

        "ListenAddress": ":8065",

in

        "ListenAddress": "127.0.0.1:8065",

in der config.json-Datei.

Testen Sie den Mattermost-Server

Wir können jetzt testen, ob unser Mattermost-Server starten würde, indem wir ihn von der Befehlszeile aus ausführen. Bitte stellen Sie sicher, dass Sie dies als Benutzer ‘mattermost’ tun. Wenn Sie dies versehentlich als ‘root’ getan haben, müssen Sie die Berechtigungen für den Mattermost-Ordner erneut festlegen!

[root@mattermost ~]# su - mattermost -s /bin/bash  
  
Letzte Anmeldung: Fri Mar 4 12:47:52 CET 2016 auf pts/0  
su: Warnung: kann das Verzeichnis nicht ändern zu /home/mattermost: Kein solches Verzeichnis  
-bash-4.2$

Jetzt wechseln Sie in das Mattermost-Installationsverzeichnis:

-bash-4.2$ cd /opt/mattermost/bin/

Und führen Sie Mattermost von der Befehlszeile aus:

-bash-4.2$ ./platform

Die Ausgabe sollte ähnlich aussehen:

[2016/03/04 13:00:10 CET] [INFO] Geladene Systemübersetzungen für 'en' aus '/opt/mattermost/i18n/en.json'  
[2016/03/04 13:00:10 CET] [INFO] Aktuelle Version ist 2.0.0 (5950/Sat Feb 13 15:42:01 UTC 2016/c71c5cef632c7dc68072167c6fe091a60835fa02)  
[2016/03/04 13:00:10 CET] [INFO] Enterprise aktiviert: false  
[2016/03/04 13:00:10 CET] [INFO] Aktuelles Arbeitsverzeichnis ist /opt/mattermost/bin  
[2016/03/04 13:00:10 CET] [INFO] Konfigurationsdatei geladen aus /opt/mattermost/config/config.json  
[2016/03/04 13:00:10 CET] [INFO] Server wird initialisiert...  
[2016/03/04 13:00:10 CET] [INFO] Pingen der SQL-Masterdatenbank  
[2016/03/04 13:00:10 CET] [INFO] Pingen der SQL-Replikat-0-Datenbank  
[2016/03/04 13:00:10 CET] [DEBG] Löschen aller ungenutzten Vorabversionen  
[2016/03/04 13:00:10 CET] [INFO] Das Datenbankschema wurde auf Version 2.0.0 gesetzt  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Benutzer-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Team-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Kanal-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Post-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Websocket-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Datei-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Befehls-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Admin-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der OAuth-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Webhook-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Präferenz-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Lizenz-API-Routen  
[2016/03/04 13:00:10 CET] [DEBG] Parsing der Servervorlagen unter /opt/mattermost/api/templates/  
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Webrouten  
[2016/03/04 13:00:10 CET] [DEBG] Verwendung des statischen Verzeichnisses unter /opt/mattermost/web/static/  
[2016/03/04 13:00:10 CET] [DEBG] Parsing der Vorlagen unter /opt/mattermost/web/templates/  
[2016/03/04 13:00:10 CET] [INFO] Server wird gestartet...  
[2016/03/04 13:00:10 CET] [INFO] Server hört auf 127.0.0.1:8065  
[2016/03/04 13:00:10 CET] [INFO] RateLimiter ist aktiviert  
[2016/03/04 13:00:10 CET] [DEBG] Überprüfung auf Sicherheitsupdates von Mattermost  
[2016/03/04 13:00:10 CET] [EROR] Fehler beim Abrufen von Sicherheitsupdateinformationen von Mattermost.

Stoppen Sie den Mattermost-Server mit Strg+C

und verlassen Sie dann die Shell, die wir als Benutzer ‘mattermost’ gestartet haben, mit:

-bash-4.2$ exit  
logout  
[root@mattermost ~]#

Wenn Ihre Mattermost-Instanz nicht startet, lesen Sie die Ausgabe sorgfältig durch. Ich hatte selbst viele Probleme, weil ich ein einfaches Komma in der config.json vergessen hatte. Stellen Sie auch sicher, dass Sie keine Sonderzeichen im Passwort Ihres Datenbankbenutzers verwenden, insbesondere kein ‘@’-Zeichen. Das hat mich am Anfang verrückt gemacht!

Wenn Sie den obigen Befehl versehentlich als ‘ root ‘ ausgeführt haben und das auch funktioniert, müssen Sie die Berechtigungen für den Mattermost-Ordner erneut festlegen. Verwenden Sie diesen Befehl, wenn Sie auf diesen Fehler gestoßen sind:

[root@mattermost ~]# chown -R mattermost:mattermost /opt/mattermost

Wenn alles gut gelaufen ist, können wir jetzt fortfahren.

Mattermost als Daemon einrichten

Um Mattermost als Daemon einzurichten, erstellen Sie eine Datei

*/etc/systemd/system/mattermost.service*

mit folgendem Inhalt:

[Unit]  
Beschreibung=Mattermost  
Nach=syslog.target network.target  
  
[Service]  
Type=simple  
WorkingDirectory=/opt/mattermost/bin  
Benutzer=mattermost  
ExecStart=/opt/mattermost/bin/platform  
PIDFile=/var/spool/mattermost/pid/master.pid  
  
[Install]  
WantedBy=multi-user.target

Laden Sie dann die Daemon-Dateien mit:

[root@mattermost ~]# systemctl daemon-reload

Wir können jetzt starten/stoppen/aktivieren/deaktivieren diesen Dienst, wie wir es gewohnt sind.

Also lassen Sie uns Mattermost starten, seinen Status abrufen und es dann als Dienst (Autostart) aktivieren.

Starten Sie den Mattermost-Daemon

[root@mattermost ~]# systemctl start mattermost.service

Überprüfen Sie den Status von Mattermost

[root@mattermost ~]# systemctl status mattermost.service  
? mattermost.service - Mattermost  
Geladen: geladen (/etc/systemd/system/mattermost.service; deaktiviert; Hersteller-Voreinstellung: deaktiviert)  
 Aktiv: aktiv (laufend) seit Fri 2016-03-04 14:03:40 CET; 4s ago  
Haupt-PID: 18573 (plattform)  
CGroup: /system.slice/mattermost.service  
??18573 /opt/mattermost/bin/platform  
...
...

Stellen Sie sicher, dass es aktiv (laufend) ist!

Aktivieren Sie den Daemon für den Autostart

[root@mattermost ~]# systemctl enable mattermost.service  
Symlink erstellt von /etc/systemd/system/multi-user.target.wants/mattermost.service zu /etc/systemd/system/mattermost.service.

Nur um sicherzugehen, machen wir einen Test, ob Mattermost auf 127.0.0.1:8065 hört, indem wir den folgenden Befehl ausführen:

[root@mattermost config]# curl -s "http://127.0.0.1:8065" | grep -b "2015 Mattermost"

Wir sollten eine einzelne Zeile erhalten, die ‘2015 Mattermost’ enthält.

11343:        © 2015 Mattermost, Inc.

Wenn ja, können wir sicher sein, dass die Mattermost-Serverinstanz läuft und wir fortfahren können.

SELinux-bezogene Berechtigungsprobleme beheben

Unter CentOS7 ist SELinux standardmäßig aktiviert. Wir könnten es ganz ausschalten, aber es ist besser, es neu zu konfigurieren und unserem Mattermost-Server die Ausführung zu erlauben.

Geben Sie einfach die folgenden 2 Befehle ein, um die SELinux-Berechtigungen zu beheben:

[root@mattermost config]# chcon -Rt httpd_sys_content_t /opt/mattermost/  
[root@mattermost config]# setsebool -P httpd_can_network_connect 1

Nginx-Server einrichten

Wir werden einen Nginx-Server vor unserer Mattermost-Serverinstanz platzieren.

Die Hauptvorteile sind:

  • Portmapping :80 auf :8065
  • Standardanforderungsprotokolle
  • mehr Optionen beim späteren Wechsel zu SSL

Epel-Repository aktivieren

Nginx ist nicht in den Standard-Repositorys von CentOS enthalten. Daher müssen wir zuerst das epel-Repository aktivieren. Dies ist eine einfache Aufgabe, geben Sie einfach ein:

[root@mattermost config]# yum -y install epel-release && yum update

Nginx installieren

Nachdem wir das epel-release aktiviert haben, können wir Nginx einfach mit folgendem Befehl installieren:

[root@mattermost config]# yum -y install nginx

Dies installiert Nginx und alle seine Abhängigkeiten.

Nginx konfigurieren

Es gibt viele Möglichkeiten, Nginx zu konfigurieren. Dieses Tutorial zeigt nur, wie man eine sehr einfache Einrichtung für Nginx erstellt, die nur unseren Mattermost-Server auf Port 80 hostet.

Ändern Sie die Standardkonfigurationsdatei von Nginx

Erstellen Sie eine Sicherungskopie der aktuellen nginx.conf, indem Sie ausführen:

[root@mattermost config]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

Ersetzen Sie dann /etc/nginx/nginx.conf durch diesen Inhalt:

# Für weitere Informationen zur Konfiguration siehe:  
# * Offizielle englische Dokumentation: http://nginx.org/en/docs/  
# * Offizielle russische Dokumentation: http://nginx.org/ru/docs/  
  
Benutzer nginx;  
Arbeiterprozesse automatisch;  
Fehlerprotokoll /var/log/nginx/error.log;  
PID /run/nginx.pid;  
  
Ereignisse {  
 Arbeiterverbindungen 1024;  
}  
  
http {  
 Protokollformat main '$remote_addr - $remote_user [$time_local] "$request" '  
 '$status $body_bytes_sent "$http_referer" '  
 '"$http_user_agent" "$http_x_forwarded_for"';  
  
 Zugriffsprotokoll /var/log/nginx/access.log main;  
  
 sendfile ein;  
 tcp_nopush ein;  
 tcp_nodelay ein;  
 keepalive_timeout 65;  
 types_hash_max_size 2048;  
  
 einschließen /etc/nginx/mime.types;  
 standard_type application/octet-stream;  
  
 # Laden Sie modulare Konfigurationsdateien aus dem Verzeichnis /etc/nginx/conf.d.  
 # Siehe http://nginx.org/en/docs/ngx_core_module.html#include  
 # für weitere Informationen.  
 einschließen /etc/nginx/conf.d/*.conf;  
  
 server {  
 server_name mattermost.example.com;  
 standort / {  
 client_max_body_size 50M;  
 proxy_set_header Upgrade $http_upgrade;  
 proxy_set_header Verbindung "upgrade";  
 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_pass http://127.0.0.1:8065;  
 }  
 }  
}

Bitte stellen Sie sicher, dass Sie den richtigen Hostnamen verwenden, wie zuvor in diesem Dokument angegeben.

Um zu überprüfen, dass wir keine Syntaxfehler in unseren Konfigurationsdateien haben, führen Sie den folgenden Befehl aus, um die Syntax zu überprüfen:

[root@mattermost config]# nginx -t  
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok  
ginx: Konfigurationsdatei /etc/nginx/nginx.conf Test erfolgreich

Starten und aktivieren Sie Nginx als Daemon

Starten Sie Nginx

[root@mattermost config]# systemctl start nginx

Überprüfen Sie den Status

[root@mattermost config]# systemctl status nginx

Stellen Sie sicher, dass es mindestens eine Zeile ausgibt, die zeigt:

...  
Aktiv: aktiv (laufend)...  
...

Aktivieren Sie es als Daemon

[root@mattermost config]# systemctl enable nginx  
Symlink erstellt von /etc/systemd/system/multi-user.target.wants/nginx.service zu /usr/lib/systemd/system/nginx.service.

Wenn alles gut gelaufen ist, sollten Sie jetzt eine funktionierende Mattermost-Installation haben, die hinter Nginx läuft. Überprüfen Sie dies, indem Sie die folgende URL in Ihrem Browser öffnen:

http://mattermost.example.com

Der Anmeldebildschirm von Mattermost sollte erscheinen!

Mattermost-Anmeldebildschirm

Jetzt können Sie fortfahren, Ihre Mattermost-Installation einzurichten, indem Sie Ihre E-Mail-Adresse eingeben und ein Konto erstellen.

Firewalld

Früher in diesem Tutorial haben wir firewalld deaktiviert. Wenn Sie es wieder aktivieren möchten, aber Port 80 offen halten möchten (den wir derzeit für Mattermost über Nginx verwenden), tun Sie einfach Folgendes:

Starten und reaktivieren Sie Firewalld

[root@mattermost config]# systemctl start firewalld  
[root@mattermost config]# systemctl enable firewalld  
Symlink erstellt von /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service zu /usr/lib/systemd/system/firewalld.service.  
Symlink erstellt von /etc/systemd/system/basic.target.wants/firewalld.service zu /usr/lib/systemd/system/firewalld.service.

Öffnen Sie Port 80 in der Firewall

[root@mattermost config]# firewall-cmd --zone=public --add-port=80/tcp --permanent  
Erfolg  
[root@mattermost config]# firewall-cmd --reload  
Erfolg

Jetzt sollte Ihre Mattermost-Installation zugänglich sein, auch wenn Firewalld läuft!

Zusammenfassung

Ich hoffe, Sie fanden dieses Tutorial nützlich und es hat funktioniert. In einer Produktionsumgebung sollten Sie Zertifikate für Ihre Mattermost-Website erstellen/verwenden und https über Nginx aktivieren. Dies kann leicht erreicht werden, indem Sie dieses Howto leicht modifizieren.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.