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
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.
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
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‚.
Dann sehen Sie den Link zum Anlegen neuer Teams oder zum Zugriff auf die Verwaltungs-/Systemkonsole.
Klicken Sie auf‘Gehe zur Systemkonsole‚ und Sie sehen das Dashboard der Systemkonsole unten:
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„.
Schließlich sehen Sie das Team Dashboard.
Wichtigster Team-Chat.
Mattermost mit PostgreSQL und Nginx Webserver auf Ubuntu 16.04 wurde erfolgreich installiert.