GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So stellen Sie Mattermost auf CentOS 7 bereit

Mattermost ist eine Open-Source-Instant-Messaging-Plattform, eine selbst gehostete Slack-Alternative. Es ist in Golang und React geschrieben und kann MySQL oder PostgreSQL als Datenbank-Backend verwenden. Mattermost bringt Ihre gesamte Teamkommunikation an einen Ort und bietet verschiedene Funktionen, darunter Dateifreigabe, Einzel- und Gruppennachrichten, benutzerdefinierte Emojis, Videoanrufe und mehr. In diesem Tutorial zeigen wir Ihnen, wie Sie Mattermost auf einem CentOS 7-Server bereitstellen und Nginx als SSL-Reverse-Proxy konfigurieren.

Voraussetzungen #

Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:

  • Sie sind als Benutzer mit sudo-Berechtigungen angemeldet.
  • Sie haben einen Domänennamen, der auf Ihre Server-IP-Adresse verweist. Wir werden linuxize-test.com verwenden .
  • Sie haben Nginx installiert, wenn nicht, lesen Sie diese Anleitung.
  • Sie haben ein SSL-Zertifikat für Ihre Domain installiert. Sie können ein kostenloses SSL-Zertifikat von Let’s Encrypt installieren, indem Sie dieser Anleitung folgen.

Mysql-Datenbank erstellen #

Wir werden MariaDB 10.3 als Datenbank-Backend verwenden. Mattermost funktioniert nicht mit MariaDB Version 5.5.

Wenn Sie MariaDB 10.3 nicht auf Ihrem Server installiert haben, können Sie diese Anleitung lesen.

Melden Sie sich bei der MySQL-Shell an:

mysql -u root -p

Und führen Sie die folgenden Befehle aus, um eine neue Datenbank und einen neuen Benutzer für unsere Mattermost-Installation zu erstellen:

create database mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';

Neuen Systembenutzer # erstellen

So erstellen Sie einen neuen Benutzer und eine neue Gruppe mit dem Namen mattermost , wodurch die Mattermost-Installation ausgeführt wird, führen Sie den folgenden Befehl aus:

sudo useradd -U -M -d /opt/mattermost mattermost

Installieren Sie Mattermost Server #

Zum Zeitpunkt des Schreibens dieses Artikels ist die neueste stabile Version von Mattermost Version 5.4.0. Bevor Sie mit dem nächsten Schritt fortfahren, sollten Sie auf der Download-Seite von Mattermost nachsehen, ob eine neuere Version verfügbar ist.

Laden Sie das Archiv mit dem folgenden Curl-Befehl herunter:

sudo curl -L https://releases.mattermost.com/5.4.0/mattermost-5.4.0-linux-amd64.tar.gz -o /tmp/mattermost.tar.gz

Sobald der Download abgeschlossen ist, extrahieren Sie das Archiv und verschieben Sie es nach opt Verzeichnis:

sudo tar zxf /tmp/mattermost.tar.gz -C /opt

Erstellen Sie das Speicherverzeichnis für Dateien:

sudo mkdir /opt/mattermost/data

Ändern Sie den Verzeichnisbesitz auf mattermost Benutzer:

sudo chown -R mattermost: /opt/mattermost

Öffnen Sie die config.json Datei mit Ihrem bevorzugten Texteditor:

sudo nano /opt/mattermost/config/config.json

Setzen Sie den Datenbanktreiber auf mysql , geben Sie den Datenbanknamen und das Kennwort des Datenbankbenutzers ein, die wir zuvor in diesem Tutorial erstellt haben:

/opt/mattermost/config/config.json
...
"SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
    "DataSourceReplicas": [],
...

Um unsere Installation zu testen, um sicherzustellen, dass alles funktioniert, bevor wir eine systemd-Einheit erstellen und einen Reverse-Proxy mit Nginx einrichten, starten wir den Mattermost-Server.

Wechseln Sie in den /opt/mattermost Verzeichnis und starten Sie den Server :

cd /opt/mattermostsudo -u mattermost bin/mattermost

Die Ausgabe sollte zeigen, dass der Mattermost-Server auf Port 8065 lauscht :

{"level":"info","ts":1540921243.6797202,"caller":"app/plugin.go:100","msg":"Starting up plugins"}
{"level":"info","ts":1540921244.3483207,"caller":"app/server.go:88","msg":"Starting Server..."}
{"level":"info","ts":1540921244.3488805,"caller":"app/server.go:148","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1540921244.3620636,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}
{"level":"info","ts":1540921244.451155,"caller":"jobs/workers.go:63","msg":"Starting workers"}
{"level":"info","ts":1540921244.456804,"caller":"jobs/schedulers.go:68","msg":"Starting schedulers."}

Sie können den Mattermost-Server jetzt mit CTRL+C stoppen und fahren Sie mit den nächsten Schritten fort.

Erstellen Sie eine Systemd-Einheit #

Um unsere Mattermost-Instanz als Dienst auszuführen, erstellen wir einen mattermost.service Unit-Datei in /etc/systemd/system/ Verzeichnis mit folgendem Inhalt:

/etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target nss-lookup.target mariadb.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
SyslogIdentifier=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Benachrichtigen Sie systemd, dass wir eine neue Unit-Datei erstellt haben, und starten Sie den Mattermost-Dienst, indem Sie Folgendes ausführen:

sudo systemctl daemon-reloadsudo systemctl start mattermost

Wir können jetzt den Dienststatus mit dem folgenden Befehl überprüfen:

sudo systemctl status mattermost
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-10-30 17:44:46 UTC; 3s ago
 Main PID: 25959 (mattermost)
   CGroup: /system.slice/mattermost.service
           └─25959 /opt/mattermost/bin/mattermost

Aktivieren Sie schließlich, dass der Mattermost-Dienst beim Booten automatisch gestartet wird:

sudo systemctl enable mattermost

Richten Sie einen Reverse-Proxy mit Nginx ein #

Wenn Sie unseren Anleitungen zum Installieren von Nginx unter CentOS 7 und zum Sichern von Nginx mit Let’s Encrypt unter CentOS 7 gefolgt sind, sollte Nginx bereits installiert und mit einem SSL-Zertifikat konfiguriert sein. Jetzt müssen wir nur noch einen neuen Serverblock für unsere Mattermost-Installation erstellen.

/etc/nginx/conf.d/linuxize-test.com.conf
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

upstream mattermost_backend {
  server 127.0.0.1:8065;
}

server {
    listen 80;
    server_name linuxize-test.com www.linuxize-test.com;

    include snippets/letsencrypt.conf;
    return 301 https://linuxize-test.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.linuxize-test.com;

    ssl_certificate /etc/letsencrypt/live/linuxize-test.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/linuxize-test.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/linuxize-test.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://linuxize-test.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name linuxize-test.com;

    ssl_certificate /etc/letsencrypt/live/linuxize-test.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/linuxize-test.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/linuxize-test.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/linuxize-test.com-access.log;
    error_log /var/log/nginx/linuxize-test.com-error.log;

   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;
       proxy_read_timeout 600s;
       proxy_pass http://mattermost_backend;
   }

   location / {
       proxy_http_version 1.1;
       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_pass http://mattermost_backend;
   }
}

Laden Sie den Nginx-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl reload nginx

Konfiguriere Mattermost #

Öffnen Sie Ihren Browser, geben Sie Ihre Domain ein und erstellen Sie Ihr erstes Konto:

Der erste erstellte Benutzer im System hat Administratorrechte.

Klicken Sie auf Create a new team Link, erstellen Sie Ihr erstes Team und legen Sie die Team-URL fest:

Nachdem Sie das erste Administratorkonto und das erste Team erstellt haben, werden Sie zum Mattermost-Dashboard weitergeleitet und sind als Administrator angemeldet. Öffnen Sie die Systemkonsole, indem Sie oben im Navigationsbereich auf Ihren Benutzernamen klicken, und klicken Sie im neu geöffneten Menü auf System Console Link:

Legen Sie die Site-URL fest, indem Sie zu Einstellungen Allgemein → Konfiguration gehen.

Aktivieren Sie E-Mail-Benachrichtigungen, indem Sie zu Benachrichtigungen → E-Mail

gehen

und geben Sie Ihre SMTP-Parameter ein. Sie können alle gängigen Transaktions-E-Mail-Dienste wie SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet und Postmark verwenden oder Ihren eigenen Mailserver einrichten.

Schließlich müssen wir den Mattermost-Dienst neu starten, damit die Änderungen wirksam werden:

sudo systemctl restart mattermost

Cent OS
  1. So installieren Sie WordPress unter CentOS 6

  2. So stellen Sie CDP auf einem CentOS-Server bereit

  3. So installieren Sie den MySQL 8-Datenbankserver unter CentOS 8

  4. So installieren Sie SpaceWalk unter CentOS 6 / RHEL 6

  5. So installieren Sie PostgreSQL unter CentOS 7 / RHEL 7

So stellen Sie Mattermost auf Ubuntu 20.04 bereit

So installieren Sie PostgreSQL in CentOS 8

So installieren Sie den PostgreSQL-Datenbankserver CentOS 8

So installieren Sie Mattermost unter CentOS 7

So installieren Sie Mattermost unter CentOS 8

So installieren Sie Moodle unter CentOS 8