GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So stellen Sie Mattermost auf Ubuntu 18.04 bereit

Mattermost ist eine Instant-Messaging-Plattform der Enterprise-Klasse, eine selbstgehostete Open-Source-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 installieren wir Mattermost auf einem Ubuntu 18.04-Server und konfigurieren Nginx als SSL-Reverse-Proxy.

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. In diesem Artikel verwenden wir example.com .
  • 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 MySQL als Datenbank für Mattermost verwenden. Wenn Sie MySQL oder MariaDB nicht auf Ihrem Server installiert haben, können Sie es installieren, indem Sie diesen Anweisungen folgen.

Melden Sie sich bei der MySQL-Shell an:

mysql -u root

Erstellen Sie eine neue Datenbank und einen neuen Benutzer für unsere Mattermost-Installation mit:

CREATE DATABASE mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';
Stellen Sie sicher, dass Sie ein sichereres Passwort als P4ssvv0rD verwenden .

Neuen Systembenutzer # erstellen

Erstellen Sie einen neuen Benutzer und eine neue Gruppe, die unsere Mattermost-Instanz ausführen. Wir nennen den Benutzer mattermost :

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.1.0. Laden Sie das Archiv mit dem folgenden Curl-Befehl herunter:

sudo curl -L https://releases.mattermost.com/5.1.0/mattermost-5.1.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 -p /opt/mattermost/data

Ändern Sie den Verzeichnisbesitz auf mattermost Benutzer:

sudo chown -R mattermost: /opt/mattermost

Öffnen Sie /opt/mattermost/config/config.json setzen Sie den Datenbanktreiber auf mysql und geben Sie die Datenbankinformationen ein:

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

Um sicherzustellen, dass unsere Mattermost-Instanz wie erwartet funktioniert, werden wir den Mattermost-Server testen. Wechseln Sie in den /opt/mattermost Verzeichnis und starten Sie den Server mit den folgenden Befehlen:

cd /opt/mattermostsudo -u mattermost bin/mattermost

Wenn alles gut funktioniert, startet der Server und die Ausgabe sieht in etwa so aus:

{"level":"info","ts":1532546921.941638,"caller":"app/server.go:115","msg":"Starting Server..."}
{"level":"info","ts":1532546921.9421031,"caller":"app/server.go:154","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1532546921.9541554,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}

Wir können jetzt den Mattermost-Server 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.

Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Datei:

/etc/systemd/system/mattermost.service
[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=mysql.service

Benachrichtigen Sie systemd, dass wir eine neue Unit-Datei erstellt haben, und starten Sie den Mattermost-Dienst mit den folgenden Befehlen:

sudo systemctl daemon-reloadsudo systemctl start mattermost

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

sudo systemctl status mattermost
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; ven
   Active: active (running) since Wed 2018-07-25 18:39:05 UTC; 41s ago
 Main PID: 3091 (mattermost)
    Tasks: 18 (limit: 507)
   CGroup: /system.slice/mattermost.service
           ├─3091 /opt/mattermost/bin/mattermost

Wenn keine Fehler vorliegen, aktivieren Sie den Mattermost-Dienst so, dass er beim Booten automatisch startet:

sudo systemctl enable mattermost

Richten Sie einen Reverse-Proxy mit Nginx ein #

Wenn Sie unseren Anleitungen zum Installieren von Nginx unter Ubuntu 18.04 und zum Sichern von Nginx mit Let’s Encrypt unter Ubuntu 18.04 gefolgt sind, sollte Nginx bereits installiert und mit einem SSL-Zertifikat konfiguriert sein.

Jetzt müssen wir einen neuen Serverblock für die Mattermost-Instanz einrichten. Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Datei:

/etc/nginx/conf.d/example.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 example.com www.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

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

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

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

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.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 Sie werden auf die sugnup-Seite weitergeleitet.

Geben Sie Ihre E-Mail-Adresse ein, wählen Sie einen Benutzernamen und ein Passwort und klicken Sie auf Create Account Schaltfläche, um Ihr erstes Konto zu erstellen.

Der erste erstellte Benutzer im System hat Administratorrechte.

Im nächsten Schritt fordert Sie der Konfigurationsassistent auf, ein neues Team zu erstellen.

Klicken Sie auf Create a new team Link, geben Sie Ihr erstes Team ein und klicken Sie auf Next Schaltfläche.

Im nächsten Schritt werden Sie aufgefordert, die Webadresse Ihres neuen Teams auszuwählen:

Klicken Sie auf Finish klicken und Sie werden 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 verlinken.

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

Um E-Mail-Benachrichtigungen zu aktivieren, gehen Sie zu Benachrichtigungen → E-Mail, ändern Sie den Enable Email Notifications Wert von false auf true 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, indem Sie dieser Anleitung folgen.

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

sudo systemctl restart mattermost

Ubuntu
  1. So stellen Sie Odoo 11 auf Ubuntu 18.04 bereit

  2. So installieren Sie MySQL unter Ubuntu 18.04

  3. So stellen Sie Rocket.Chat auf Ubuntu 18.04 bereit

  4. So richten Sie einen OpenVPN-Server unter Ubuntu 18.04 ein

  5. So installieren Sie Zimbra 8.6 auf einem Ubuntu 14.04-Server

So installieren Sie den OpenSIPS-Server unter Ubuntu 15.04

So stellen Sie Mattermost auf Ubuntu 20.04 bereit

So installieren Sie Plex Media Server auf Ubuntu 16.04 Server/Desktop

Mattermost Omnibus:So installieren Sie auf einem Ubuntu 20.04 LTS-Linux-Server

So stellen Sie einen TeamSpeak-Server auf Ubuntu 20.04 bereit

So führen Sie eine vollständige Installation von Mattermost auf Ubuntu Server 22.04 durch