So installierst du Mattermost auf Alma Linux 8
Mattermost ist eine kostenlose, quelloffene und sichere Plattform für Kommunikation, Zusammenarbeit und Workflow-Orchestrierung über Tools und Teams hinweg. Mattermost ist ein selbst gehosteter Chat-Dienst für Organisationen und Unternehmen, die einen internen Chat-Dienst einrichten wollen. Er bietet verschiedene nützliche Funktionen wie One-to-One-Messaging, einen unbegrenzten Suchverlauf, Dateifreigabe, Zwei-Faktor-Authentifizierung, Benachrichtigungen und vieles mehr. Wenn du nach einer alternativen Lösung für Slack suchst, ist Mattermost die beste Wahl für dich.
In diesem Tutorial zeigen wir dir, wie du Mattermost mit Nginx auf Alma Linux 8 installierst.
Voraussetzungen
- Ein Server, auf dem Alma Linux 8 läuft.
- Ein gültiger Domainname, der auf die IP deines Servers zeigt.
- Ein Root-Passwort ist auf dem Server konfiguriert.
Installiere den MySQL-Server
Mattermost verwendet MySQL als Datenbank-Backend. Daher muss MySQL auf deinem Server installiert sein. Du kannst ihn installieren, indem du den folgenden Befehl ausführst:
dnf install mysql-server -y
Sobald der MySQL-Server installiert ist, starte und aktiviere den MySQL-Dienst mit dem folgenden Befehl:
systemctl start mysqld systemctl enable mysqld
Jetzt kannst du die MySQL-Installation sichern, indem du das folgende Skript ausführst:
mysql_secure_installation
Beantworte alle Fragen wie unten gezeigt, um das MySQL-Root-Passwort festzulegen und die Installation zu sichern:
Press y|Y for Yes, any other key for No: N Please set the password for root here. New password: Re-enter new password: Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Erstelle eine Datenbank für Mattermost
Als Nächstes musst du eine Datenbank und einen Benutzer für Mattermost erstellen. Melde dich zunächst mit dem folgenden Befehl bei MySQL an:
mysql -u root -p
Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:
mysql> CREATE DATABASE matterdb; mysql> CREATE USER 'matteruser'@'localhost' IDENTIFIED BY 'password';
Als Nächstes erteilst du der Mattermost-Datenbank alle Berechtigungen:
mysql> GRANT ALL PRIVILEGES ON matterdb.* TO matteruser@localhost;
Als Nächstes löschst du die Berechtigungen und verlässt MySQL mit folgendem Befehl:
mysql> FLUSH PRIVILEGES; mysql> EXIT;
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Mattermost auf Alma Linux 8 installieren
Erstelle zunächst mit folgendem Befehl einen eigenen Benutzer, um Mattermost auszuführen:
useradd --system --user-group mattermost
Als Nächstes lädst du die neueste Version von Mattermost mit folgendem Befehl herunter:
wget https://releases.mattermost.com/6.0.2/mattermost-6.0.2-linux-amd64.tar.gz
Sobald der Download abgeschlossen ist, entpacke die heruntergeladene Datei mit dem folgenden Befehl:
tar -xf mattermost-6.0.2-linux-amd64.tar.gz
Verschiebe das extrahierte Verzeichnis in das Verzeichnis /opt:
mv mattermost /opt
Als Nächstes erstellst du ein Datenverzeichnis für Mattermost und änderst die Eigentums- und Zugriffsrechte für Mattermost:
mkdir /opt/mattermost/data chown -R mattermost:mattermost /opt/mattermost chmod -R g+w /opt/mattermost
Als Nächstes bearbeitest du die Mattermost-Konfigurationsdatei:
nano /opt/mattermost/config/config.json
Definiere die URL deiner Mattermost-Website wie unten gezeigt:
"SiteURL": "http://mattermost.example.com",
Als nächstes suchst du die folgenden Zeilen:
"DriverName": "postgres", "DataSource": "postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable\u0026connect_timeout=10",
Und ersetze sie durch die folgenden Zeilen:
"DriverName": "mysql", "DataSource": "matteruser:password@tcp(localhost:3306)/matterdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Speichere und schließe die Datei, wenn du fertig bist.
Erstelle eine Systemd-Dienstdatei für Mattermost
Als Nächstes musst du eine systemd-Dienstdatei erstellen, um den Mattermost-Dienst zu verwalten. Du kannst sie erstellen, indem du den folgenden Befehl ausführst:
nano /etc/systemd/system/mattermost.service
Füge die folgenden Zeilen ein:
[Unit] Description=Mattermost After=syslog.target network.target mysqld.service [Service] Type=notify WorkingDirectory=/opt/mattermost User=mattermost ExecStart=/opt/mattermost/bin/mattermost PIDFile=/var/spool/mattermost/pid/master.pid TimeoutStartSec=3600 LimitNOFILE=49152 [Install] WantedBy=multi-user.target
Speichere und schließe die Datei und lade dann den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Starte als Nächstes den Mattermost-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:
systemctl start mattermost systemctl enable mattermost
Du kannst jetzt den Status des Mattermost-Dienstes mit folgendem Befehl überprüfen:
systemctl status mattermost
Du erhältst die folgende Ausgabe:
? mattermost.service - Mattermost Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2022-01-15 14:12:29 UTC; 7s ago Main PID: 15201 (mattermost) Tasks: 32 (limit: 11411) Memory: 265.2M CGroup: /system.slice/mattermost.service ??15201 /opt/mattermost/bin/mattermost ??15298 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64 ??15299 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64 ??15308 plugins/playbooks/server/dist/plugin-linux-amd64 ??15313 plugins/focalboard/server/dist/plugin-linux-amd64 Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.344 Z","level":"info","msg":"Sent notification of next survey> Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.402 Z","level":"info","msg":"Post.Message has size restrictio> Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.499 Z","level":"info","msg":"info [2022-01-15 14:12:26.497 Z]> Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.537 Z","level":"info","msg":"\n -- collation of mattermost> Jan 15 14:12:28 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:28.297 Z","level":"info","msg":"debug [2022-01-15 14:12:28.295 Z> Jan 15 14:12:28 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:28.804 Z","level":"info","msg":"info [2022-01-15 14:12:28.803 Z]> Jan 15 14:12:29 almalinux8 systemd[1]: Started Mattermost. Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.149 Z","level":"info","msg":"Starting Server...","caller":"ap> Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.150 Z","level":"info","msg":"Server is listening on [::]:8065> Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.150 Z","level":"info","msg":"Sending systemd READY notificati>
Zu diesem Zeitpunkt ist Mattermost gestartet und läuft auf Port 8065. Du kannst ihn mit dem folgenden Befehl überprüfen:
ss -antpl | grep 8065
Du erhältst die folgende Ausgabe:
LISTEN 0 128 *:8065 *:* users:(("mattermost",pid=15201,fd=35))
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Nginx als Reverse Proxy für Mattermost konfigurieren
Es wird empfohlen, Nginx als Reverse-Proxy für Mattermost zu installieren und zu konfigurieren. Dazu musst du den Nginx-Server auf deinem Server installieren. Du kannst ihn installieren, indem du den folgenden Befehl ausführst:
dnf install nginx -y
Sobald Nginx installiert ist, erstellst du mit folgendem Befehl eine Konfigurationsdatei für den virtuellen Nginx-Host:
nano /etc/nginx/conf.d/mattermost.conf
Füge die folgenden Zeilen ein:
server { listen 80; server_name mattermost.example.com; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { proxy_pass http://localhost:8065/; index index.html index.htm; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
Speichere und schließe die Datei und überprüfe den Nginx auf Konfigurationsfehler:
nginx -t
Wenn alles in Ordnung ist, erhältst du die folgende Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starte den Nginx-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:
systemctl start nginx systemctl enable nginx
Du kannst den Status von Nginx mit folgendem Befehl überprüfen:
systemctl status nginx
Du erhältst die folgende Ausgabe:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2022-01-15 14:14:05 UTC; 7s ago Process: 15356 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 15354 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 15351 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 15358 (nginx) Tasks: 2 (limit: 11411) Memory: 3.8M CGroup: /system.slice/nginx.service ??15358 nginx: master process /usr/sbin/nginx ??15359 nginx: worker process Jan 15 14:14:05 almalinux8 systemd[1]: nginx.service: Succeeded. Jan 15 14:14:05 almalinux8 systemd[1]: Stopped The nginx HTTP and reverse proxy server. Jan 15 14:14:05 almalinux8 systemd[1]: Starting The nginx HTTP and reverse proxy server... Jan 15 14:14:05 almalinux8 nginx[15354]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Jan 15 14:14:05 almalinux8 nginx[15354]: nginx: configuration file /etc/nginx/nginx.conf test is successful Jan 15 14:14:05 almalinux8 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Jan 15 14:14:05 almalinux8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Jetzt ist Nginx installiert und für die Bereitstellung von Mattermost konfiguriert. Du kannst jetzt mit dem nächsten Schritt fortfahren.
Firewall konfigurieren
Als Nächstes musst du Port 80 in der Firewall zulassen. Du kannst ihn mit folgendem Befehl freigeben:
firewall-cmd --add-service=http --permanent
Lade dann die Firewall neu, um die Änderungen zu übernehmen:
firewall-cmd --reload
Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Zugriff auf die Mattermost Web UI
Öffne nun deinen Webbrowser und rufe die Mattermost-Weboberfläche über die URL http://mattermost.example.com auf. Du wirst auf den folgenden Bildschirm weitergeleitet:
Gib deine E-Mail-Adresse, deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Konto erstellen. Du erhältst den folgenden Bildschirm:
Klicke auf Ein Team erstellen. Du erhältst den folgenden Bildschirm:
Gib deinen Teamnamen ein und klicke auf die Schaltfläche Weiter. Du erhältst den folgenden Bildschirm:
Gib die URL deines Mattermost-Teams ein und klicke auf die Schaltfläche Fertig stellen. Auf dem folgenden Bildschirm siehst du das Mattermost-Dashboard:
Fazit
In der obigen Anleitung hast du gelernt, wie du den Chatdienst Mattermost mit Nginx auf Alma Linux 8 installierst. Jetzt kannst du Mattermost in deinem Unternehmen einführen und als internen Chat nutzen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.