GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie das Mattermost Team Messaging System unter Debian 10

Mattermost ist ein Open-Source-Messaging-System, das in den Programmiersprachen Golang und React geschrieben ist. Es ist eine Slack-Alternative, wir können damit unseren eigenen Messaging-Dienst wie Slack oder Hipchat aufbauen.

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 zeigen wir Ihnen, wie Sie Mattermost auf Debian Buster 10 installieren. Wir werden Mattermost mit dem MySQL-Datenbankserver, dem Nginx-Webserver installieren und Mattermost als Systemd-Dienst auf der neuesten Debian-Version Buster 10 ausführen>

Voraussetzung

Für dieses Tutorial testen wir die Mattermost-Installation auf Debian 10 mit 2 GB RAM, 25 freiem Speicherplatz und 2 CPUs.

Was werden wir tun?

  • MySQL-Server installieren
  • MySQL-Datenbank für Mattermost erstellen
  • Systembenutzer hinzufügen und Mattermost herunterladen
  • Mattermost konfigurieren
  • Richten Sie Mattermost als Systemdienst ein
  • SSL Letsencrypt generieren
  • Installieren und konfigurieren Sie Nginx als Reverse-Proxy
  • Testen

Schritt 1 - MySQL-Datenbank installieren

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

Installieren Sie das 'gnupg2'-Tool auf dem Debian-Server mit dem folgenden apt-Befehl.

sudo apt install curl wget gnupg2

Laden Sie das MySQL-Repository für das Debian-System mit dem folgenden Befehl herunter und fügen Sie es 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-Repositories und installieren Sie die MySQL-Server-Pakete.

sudo apt update
sudo apt install mysql-server -y

Während der MySQL-Server-Installation 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.

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

systemctl start mysql
systemctl enable mysql

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

Schritt 2 – MySQL-Datenbank für Mattermost erstellen

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

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

Melden Sie sich wie unten beschrieben mit Ihrem Root-Benutzer und Ihrem Passwort bei der MySQL-Shell 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 [email protected] identified by 'mmuser-password';
grant all privileges on mattermost.* to [email protected];
flush privileges;

Geben Sie nun „exit“ ein, um sich von der MySQL-Shell abzumelden.

Als Ergebnis wurden die MySQL-Datenbank und der Benutzer für die Mattermost-Installation erstellt.

Schritt 3 – Benutzer hinzufügen und Mattermost herunterladen

In diesem Schritt erstellen wir einen neuen Systembenutzer und laden den Mattermost-Quellcode herunter. Die Mattermost-Software wird unter dem Benutzernamen „mattermost“ ausgeführt und im Verzeichnis „/opt/mattermost“ installiert.

Erstellen Sie mit dem folgenden Befehl einen neuen Systembenutzer namens „mattermost“.

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 ‚data‘-Verzeichnis.

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

Ändern Sie danach den Besitz des Verzeichnisses „/opt/mattermost“ auf den Benutzer „mattermost“ und machen Sie 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 in das Verzeichnis „/opt/mattermost“ heruntergeladen.

Schritt 4 - Mattermost konfigurieren

In diesem Schritt richten wir die Mattermost Listen-to-Adresse und Datenbank ein. Der Mattermost-Dienst wird auf der lokalen IP-Adresse auf dem Standardport 8065 ausgeführt und verwendet MySQL als Datenbanksystem.

Gehen Sie in das Verzeichnis „/opt/mattermost“ und bearbeiten Sie die Konfigurationsdatei „config.json“ im Verzeichnis „config“.

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

Ändern Sie in der Option „ListenAddress“ die IP-Adresse in „127.0.0.1“.

    "ListenAddress": "127.0.0.1:8065",

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

  "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "dbuser:[email protected](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.

Als Ergebnis läuft Mattermost auf der lokalen IP-Adresse „127.0.0.1“ mit dem Port „8065“, drücken Sie jetzt die Taste „Strg+c“ zum Beenden.

Schritt 5 – Mattermost als Service einrichten

In diesem Schritt richten wir Mattermost als Systemdienst ein und er wird automatisch beim Systemstart ausgeführt, nachdem der MySQL-Datenbankdienst ausgeführt wurde.

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

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

Starten Sie danach den Mattermost-Dienst und fügen Sie ihn zum Systemstart hinzu.

systemctl start mattermost
systemctl enable mattermost

Der Mattermost-Dienst ist betriebsbereit, überprüfen Sie ihn mit dem folgenden Befehl.

systemctl status mattermost

Unten sehen Sie das Ergebnis, das Sie erhalten.

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

Schritt 6 – Certbot Letsencrypt installieren

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

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

sudo apt install certbot

Generieren Sie nach Abschluss der Installation das SSL-letsencrypt mit dem Befehl certbot unten.

certbot certonly --standalone --agree-tos -m [email protected] -d mattermost.hakase-labs.io

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

Schritt 7 – Nginx als Reverse-Proxy installieren und konfigurieren

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

Starten Sie nach Abschluss der Installation den Nginx-Dienst und fügen Sie ihn zum Systemstart hinzu.

systemctl start nginx 
systemctl enable nginx

Der Nginx-Webserver ist betriebsbereit.

Gehen Sie als Nächstes in das Konfigurationsverzeichnis „/etc/nginx“ und erstellen Sie eine neue virtuelle Hostkonfiguration für Mattermost.

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

Ändern Sie den Domänennamen und den Pfad der SSL-Zertifikate mit Ihren eigenen und fügen Sie dann die Konfiguration 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.

Erstellen Sie als Nächstes das Nginx-Cache-Verzeichnis und ändern Sie den Besitz 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 virtuellen Mattermost-Host, testen Sie die nginx-Konfiguration und stellen Sie sicher, 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 folgenden systemctl-Befehl neu.

systemctl restart nginx

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

Schritt 8 – Testen

Öffnen Sie Ihren Webbrowser und geben Sie den Domänennamen Ihrer Mattermost-Installations-URL in die Adressleiste ein. Meine ist:

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

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

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.

Geben Sie den Namen Ihres ersten Teams ein und klicken Sie auf „Weiter“.

Und die Team-URL ist der Teamname, klicken Sie auf „Fertigstellen“, um fortzufahren.

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

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


Debian
  1. So installieren Sie MySQL 8.0 / 5.7 unter Debian 11 / Debian 10

  2. So installieren Sie Gradle unter Debian 10

  3. So installieren Sie MySQL Workbench unter Debian 10

  4. So installieren Sie MySQL unter Debian 11

  5. So installieren Sie MySQL Workbench unter Debian 11

So installieren Sie MySQL 8 auf Debian 10

So installieren Sie PostgreSQL 14 auf Debian 11

So installieren Sie LAMP (Apache, MySQL, PHP) unter Debian 10

So installieren Sie Webmin unter Debian 11

So installieren Sie Mattermost unter Debian 11

So installieren Sie Mattermost unter Debian 11