Wie man mit PostgreSQL und Nginx auf Ubuntu 16.04 am wichtigsten installiert

Mattermost ist ein Open-Source-Messaging-System, das in den Programmiersprachen Golang und React geschrieben wurde. Es ist eine Slack-Alternative, wir können damit unseren eigenen Messaging-Service 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 aus darauf zugreifen.

In diesem Tutorial werde ich Sie dabei unterstützen, Ihren eigenen Mattermost-Server zu erstellen, der PostgreSQL als Datenbanksystem und Nginx als Reverse-Proxy für Mattermost verwendet. Ich werde Ubuntu 16.04 als Betriebssystem verwenden.

Voraussetzung

  • Ubuntu 16.04 – 64bit
  • Root-Privilegien

Schritt 1 – Installation und Konfiguration der PostgreSQL-Datenbank

Mattermost unterstützt MySQL- und PostgreSQL-Datenbanken. Wir werden PostgreSQL als Hauptdatenbank für dieses Tutorial verwenden. Verbinden Sie sich mit Ihrem Server und aktualisieren Sie das Repository.

Verbinden Sie sich per SSH mit Ihrem Server oder melden Sie sich am Terminal an und aktualisieren Sie das Ubuntu-Repository.

ssh root@192.168.1.110
sudo apt-get update

Installieren Sie PostgreSQL als root-Benutzer mit diesem apt-Befehl.

sudo apt-get install postgresql postgresql-contrib

Wenn die Installation abgeschlossen ist, melden Sie sich beim postgres-Benutzer an und geben Sie den Befehl‘psql‚ ein, um sich an der postgresql-Shell anzumelden.

su - postgres
psql

Ändern Sie das postgres-Benutzerpasswort mit dem folgenden Befehl:

\password postgres
Enter new password:

Als nächstes müssen wir eine neue Datenbank und einen neuen Benutzer für die Mattermost-Installation konfigurieren. Ich werde eine neue Datenbank namens‘mattermostdb‚ und den Benutzer‘matteruser‚ mit Passwort‘matterpassword‚ erstellen. Bitte wählen Sie ein sicheres Passwort für Ihre Installation.

Erstellen Sie die neue Datenbank und den neuen Benutzer mit der PostgreSQL-Abfrage unten:

CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';

Vergeben Sie ‚matteruser‚ Privilegien an die Datenbank ‚mattermostdb‚ und verlassen Sie diese.

GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q

Konfigurieren Sie die PostgreSQL-Datenbank für Mattermost.

Schritt 2 – Installation und Konfiguration der wichtigsten Funktionen

Wir werden Mattermost als normalen Linux-Benutzer installieren und konfigurieren, nicht als Root-Benutzer. Wir werden Mattermost als Benutzer’matter‘ ausführen, also müssen wir einen neuen Linux-Benutzer namens’matter‘ auf dem Server erstellen.

Erstelle einen neuen‘matter‚ Benutzer und ein neues Passwort.

useradd -m -s /bin/bash matter
passwd matter

‚matter‘ Benutzer erstellt, melden Sie sich jetzt beim Benutzer an und laden Sie die neueste Mattermost Version mit wget herunter.

su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz

Extrahiere die Mattermost-Datei und du siehst das neue Verzeichnis’mattermost‘, gehe mit dem Befehl cd in dieses Verzeichnis.

tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/

Als nächstes erstellen Sie ein neues’data‘-Verzeichnis zum Speichern der Benutzerdateien und bearbeiten dann die wichtigste Konfigurationsdatei‘config/config.json‚ mit vim.

mkdir data/
vim config/config.json

Wir werden am wichtigsten hinter einem Nginx Reverse-Proxy laufen, daher ist es besser, Mattermost so zu konfigurieren, dass es auf die lokale IP-Adresse hört. Fügen Sie im Block „ServiceSettings“ der Konfiguration auf Zeile 4 die IP-Adresse des lokalen Hosts hinzu.

"ListenAddress": "127.0.0.1:8065",

Gehen Sie nun zu den‘SqlSettings‚ auf Zeile 48. Ändern Sie die Konfiguration von‘DriverName‚ und‘DataSource‚, um die PostgreSQL-Datenbank mit der folgenden Konfiguration zu verwenden:

"DriverName": "postgres",
"DataSource": "postgres://matteruser:matterpassword@127.0.0.1:5432/mattermostdb?sslmode=disable&connect_timeout=10",

Hinweis:

matteruser = postgresql user.
matterpassword = das Passwort.
mattermostdb = die Datenbank.

Speichern und beenden.

Wenn dies erledigt ist, gehen Sie in das Verzeichnis bin und führen Sie die Angelegenheit aus.

cd bin/
./platform

Sie werden sehen, dass mattermost auf localhost IP mit Port 8065 läuft.

Drücken Sie Strg + c, um das Menü zu verlassen.

Wichtigste Installation auf Ubuntu 16.04.

Schritt 3 – Konfigurieren Sie den wichtigsten Systemdienst.

Gehen Sie in das Systemverzeichnis systemd und erstellen Sie eine neue, äußerst wichtige Servicedatei.

cd /etc/systemd/system/
vim mattermost.service

Füge die Konfiguration unten ein:

[Unit]
Description=Mattermost is an open source, self-hosted Slack-alternative
After=syslog.target network.target

[Service]
Type=simple
User=matter
Group=matter
ExecStart=/home/matter/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/home/matter/mattermost
Restart=always
RestartSec=30
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Speichern und beenden.

Laden Sie den Systemdämon neu und starten Sie den Mattermost-Dienst, den wir oben erstellt haben.

systemctl daemon-reload
systemctl start mattermost

Stellen Sie sicher, dass kein Fehler vorliegt. Überprüfen Sie, ob der Mattermost-Dienst ausgeführt wird.

netstat -plntu
systemctl status mattermost

Der bedeutendste Dienst läuft.

Schritt 4 – Installation und Konfiguration von Nginx

In diesem Schritt werden wir Nginx installieren und Nginx als Reverse-Proxy für Mattermost konfigurieren. Wir werden den wichtigsten Port 8056 dem HTTP- und HTTPS-Port zuordnen.

Installieren Sie Nginx aus dem Ubuntu-Repository mit diesem apt-Befehl.

sudo apt-get install nginx

Gehen Sie nun in das Nginx-Konfigurationsverzeichnis und erstellen Sie das SSL-Unterverzeichnis.

cd /etc/nginx/
mkdir ssl/; cd ssl/

Erzeugen Sie mit OpenSSL eine neue selbstsignierte SSL-Zertifikatsdatei und ändern Sie die Berechtigungen des privaten Schlüssels.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key

Erstellen Sie eine neue virtuelle Hostdatei für Mattermost im Verzeichnis „sites-available„.

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

Fügen Sie die Konfiguration des virtuellen Hosts unten ein:

server {
   listen         80;
   server_name    mattermost.mydomain.com;
   return         301 https://$server_name$request_uri;
}

server {
listen 443 ssl;
server_name mattermost.mydomain.com;

ssl on;
ssl_certificate /etc/nginx/ssl/mattermost.crt;
ssl_certificate_key /etc/nginx/ssl/mattermost.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ‚EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH‘;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;

location / {
gzip off;
proxy_set_header X-Forwarded-Ssl on;
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection „upgrade“;
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_pass http://127.0.0.1:8065;
}
}

Ändern Sie den Domainnamen in Ihre eigene Domain, speichern und verlassen Sie ihn.

Aktivieren Sie den virtuellen Host, indem Sie einen Symlink zur wichtigsten Datei im Verzeichnis „sites-enabled“ erstellen.

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/

Testen Sie die Nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie nginx neu.

nginx -t
systemctl restart nginx

Schritt 5 – Prüfung

Öffnen Sie Ihren Webbrowser und besuchen Sie den wichtigsten Domainnamen, in meinem Fall: mattermost.mydomain.com.

Sie werden automatisch zur HTTPS-Verbindung weitergeleitet.

Erstellen Sie zuerst ein neues Konto, klicken Sie auf‘Konto erstellen‚.

Erstellen Sie ein Konto in Mattermost

Dann sehen Sie den Link zum Anlegen neuer Teams oder zum Zugriff auf die Verwaltungs-/Systemkonsole.

Wichtigster Punkt: Team erstellen oder Zugriff auf die Verwaltungskonsole

Klicken Sie auf‘Gehe zur Systemkonsole‚ und Sie sehen das Dashboard der Systemkonsole unten:

Wichtigstes Dashboard für die Systemkonsole

Klicken Sie auf‘Neues Team erstellen‚, geben Sie Ihren Teamnamen ein und klicken Sie auf‘Weiter‚. Konfigurieren Sie dann die Team-URL und klicken Sie auf die Schaltfläche „Fertigstellen„.

Erstellen Sie ein Team in Mattermost.

Schließlich sehen Sie das Team Dashboard.

Wichtigstes Team Dashboard

Wichtigster Team-Chat.

Wichtigster Team-Chat

Mattermost mit PostgreSQL und Nginx Webserver auf Ubuntu 16.04 wurde erfolgreich installiert.

Referenz

Das könnte Dich auch interessieren …