Android

So implementieren Sie es auf Centos 7

Motherless Brooklyn

Motherless Brooklyn

Inhaltsverzeichnis:

Anonim

Mattermost ist eine Open-Source-Instant-Messaging-Plattform, eine selbst gehostete Slack-Alternative. Es ist in Golang and React geschrieben und kann MySQL oder PostgreSQL als Datenbank-Backend verwenden. Mit Mattermost haben Sie die gesamte Teamkommunikation an einem Ort und können verschiedene Funktionen wie Filesharing, Einzel- und Gruppen-Messaging, benutzerdefinierte Emojis, Videoanrufe und mehr nutzen. 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 Domainnamen, der auf Ihre Server-IP-Adresse verweist. Wir verwenden linuxize-test.com Sie haben Nginx installiert, wenn Sie dieses Handbuch nicht lesen. Sie haben ein SSL-Zertifikat für Ihre Domain installiert. Sie können ein kostenloses Let's Encrypt SSL-Zertifikat installieren, indem Sie dieser Anleitung folgen.

Erstellen Sie eine MySQL-Datenbank

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

Melden Sie sich bei der MySQL-Shell an:

mysql -u root -p

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';

Erstellen Sie einen neuen Systembenutzer

Führen Sie den folgenden Befehl aus, um einen neuen Benutzer und eine neue Gruppe mit dem Namen mattermost zu mattermost , die die Mattermost-Installation ausführen:

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

Installieren Sie den 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 Mattermost-Download-Seite nachsehen, ob eine neuere Version verfügbar ist.

Laden Sie das Archiv mit dem folgenden 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 in das 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 den mattermost Benutzer:

sudo chown -R mattermost: /opt/mattermost

Öffnen Sie die Datei config.json 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 Lernprogramm 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 systemd unit erstellt und ein Reverse-Proxy mit Nginx eingerichtet wird, starten wir den Mattermost-Server.

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

cd /opt/mattermost sudo -u mattermost bin/mattermost

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

{"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 STRG CTRL+C anhalten und mit den nächsten Schritten fortfahren.

Erstellen Sie eine Systemd Unit

Um unsere Mattermost-Instanz als Service mattermost.service , erstellen wir eine mattermost.service Unit-Datei im Verzeichnis /etc/systemd/system/ mit folgendem Inhalt:

/etc/systemd/system/mattermost.service

Description=Mattermost After=network.target nss-lookup.target mariadb.service Type=notify WorkingDirectory=/opt/mattermost User=mattermost SyslogIdentifier=mattermost ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 LimitNOFILE=49152 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-reload sudo systemctl start mattermost

Wir können jetzt den Servicestatus 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 mit Nginx einen Reverse Proxy ein

/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+/(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

Konfigurieren von Mattermost

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

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 Poststempel 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

Fazit

Sie haben Mattermost erfolgreich auf Ihrem CentOS 7-Server installiert und Nginx als Reverse-Proxy eingerichtet. Sie können nun Mattermost verwenden, um mit Ihrem Team zusammenzuarbeiten.

mattermost nodejs centos