,

Mattermost Chatsystem auf VPS installieren

Lesedauer 5 Minuten

Inhaltsverzeichnis

Hinweis
Einige Screenshots zeigen das Backend unseres Schwesterunternehmens dogado. Die gezeigten Schritte können jedoch auch im easyname-Backend durchgeführt werden.

0. Überblick

  • Verwendetes System: Debian 11 64 bit
  • VPS General Purpose
  • Genutzter User: Ich nehme alles als „root“ vor
  • Zeitdauer: ca. 10 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren 😉
  • Besonderheiten:
    • Grundlage ist folgende Anleitung: Traefik Reverseproxy installieren Diese Anleitung muss zuerst ausgeführt werden.
    • Die Installation von Docker / Docker Compose wird hier vorausgesetzt.

1. Mattermost installieren

1.1 Einleitung

Mattermost ist ein open Source Chat Dienst. Man kann innerhalb von Mattermost mit einzelnen Personen oder Gruppen chatten. Die Besonderheit von Mattermost ist, dass man auch „bots“ in die Kanäle einbinden kann, welche automatisiert Aufgaben erfüllen. Mattermost gibt es als kostenfreie Version zum Betreiben auf dem eigenen Server oder als kostenpflichtige Enterprise Version.

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Du kannst den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Mattermost werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um Mattermost neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu findest du hier:  https://www.easyname.at/blog/vps/anwendungen/traefik-reverseproxy-auf-vps-installieren

1.3.1 Daten von git kopieren

Nun kopieren wir uns die aktuelle Version von Mattermost. Dazu gibst du folgendes ein.

apt-get update

apt-get install git

git clone https://github.com/mattermost/mattermost-docker.git /opt/containers/mattermost

Dabei werden die Daten ins Verzeichnis /opt/containers/mattermost kopiert. Du kannst hier auch ein anderes Verzeichnis verwenden. Musst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Mattermost abspeichern. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/mattermost/volumes/app/mattermost/{data,logs,config,plugins,client-plugins}

Nun passen wir noch die Ordnerberechtigungen an.

chown -R 1000:1000 /opt/containers/mattermost/volumes/app/mattermost/

1.3.3 docker-compose.yml anpassen

Nun können wir mit der eigentlichen „Installation“ von Mattermost beginnen. Wir haben uns bereits eine docker-compose.yml per git runtergeladen. Da wir hier jedoch zu viele Anpassungen machen müssen, löschen wir diese und legen uns eine eigene an. Dazu gibst du folgendes ein:

rm /opt/containers/mattermost/docker-compose.yml

nano /opt/containers/mattermost/docker-compose.yml

Nun kopierst du folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Mattermost Container.

version: "3"

services:

db:

build: db

read_only: true

restart: unless-stopped

volumes:

- ./volumes/db/var/lib/postgresql/\data`:/var\/lib/postgresql/`data` (Hier bitte die `` Zeichen entfernen/ignorieren)

- /etc/localtime:/etc/localtime:ro

environment:

- POSTGRES_USER=mmuser

- POSTGRES_PASSWORD=mmuser_password

- POSTGRES_DB=mattermost

networks:

- default

app:

build:

context: app

args:

- edition=team

- PUID=1000

- PGID=1000

# - MM_VERSION=5.31

restart: unless-stopped

volumes:

- ./volumes/app/mattermost/config:/mattermost/config:rw

- ./volumes/app/mattermost/data:/mattermost/data:rw 

- ./volumes/app/mattermost/logs:/mattermost/logs:rw

- ./volumes/app/mattermost/plugins:/mattermost/plugins:rw

- ./volumes/app/mattermost/client-plugins:/mattermost/client/plugins:rw

- /etc/localtime:/etc/localtime:ro

environment:

# set same as db credentials and dbname

- MM_USERNAME=mmuser

- MM_PASSWORD=mmuser_password

- MM_DBNAME=mattermost

# use the credentials you've set above, in the format:

# MM_SQLSETTINGS_DATASOURCE=postgres://${MM_USERNAME}:${MM_PASSWORD}@db:5432/${MM_DBNAME}?sslmode=disable&connect_timeout=10

- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mmuser_password@db:5432/mattermost?sslmode=disable&connect_timeout=10

# in case your config is not in default location

#- MM_CONFIG=/mattermost/config/config.json

networks:

- default

web:

build: web

read_only: true

restart: unless-stopped

volumes:

# This directory must have cert files if you want to enable SSL

- ./volumes/web/cert:/cert:ro

- /etc/localtime:/etc/localtime:ro

cap_drop:

- ALL

labels:

- "traefik.enable=true"

- "traefik.http.routers.mattermost.entrypoints=http"

`- "traefik.http.routers.mattermost.rule=Host(chat.euredomain.de`)" # Hier eure URL eingeben #

- "traefik.http.middlewares.mattermost-https-redirect.redirectscheme.scheme=https"

- "traefik.http.routers.mattermost.middlewares=mattermost-https-redirect"

- "traefik.http.routers.mattermost-secure.entrypoints=https"

`- "traefik.http.routers.mattermost-secure.rule=Host(chat.euredomain.de`)" # Hier eure URL eingeben #

- "traefik.http.routers.mattermost-secure.tls=true"

- "traefik.http.routers.mattermost-secure.tls.certresolver=http"

- "traefik.http.routers.mattermost-secure.service=mattermost"

- "traefik.http.services.mattermost.loadbalancer.server.port=8080"

- "traefik.docker.network=proxy"

- "traefik.http.routers.mattermost-secure.middlewares=secHeaders@file"

networks:

- proxy

- default

networks:

proxy:

external: true

Nun müssen wir noch einiges anpassen.

1.3.4 Hostname anpassen

Nun musst du noch den Hostnamen anpassen, über welchen später DokuWiki erreichbar sein soll.

Diese beiden Zeilen musst du anpassen.

- "traefik.http.routers.mattermost.rule=Host(`chat.euredomain.de`)"

- "traefik.http.routers.mattermost-secure.rule=Host(`chat.euredomain.de`)"

In meinem Fall also:

    - "traefik.http.routers.mattermost.rule=Host(`chat.testbereich.net`)" 

    - "traefik.http.routers.mattermost-secure.rule=Host(`chat.testbereich.net`)" 

Wenn du Mattermost direkt auf deiner „Hauptdomain“ betreiben willst, dann änderst du es folgendermaßen ab:

„traefik.http.routers.mattermost.rule=Host(www.euredomain.de,euredomain.de)“

„traefik.http.routers.mattermost-secure.rule=Host(www.euredomain.de,euredomain.de)“

1.3.5 Datenbank Passwörter anpassen

Nun vergeben wir noch sichere Kennwörter für unsere Datenbank. Achte darauf, dass du jeweils bei PostgresSQL als auch bei Mattermost das identische Kennwort eingibst, damit die Dienste kommunizieren können.

vorher:

- POSTGRES_PASSWORD=mmuser_password 

- MM_PASSWORD=mmuser_password 

Abgesichert:

- POSTGRES_PASSWORD=fas23dAf43 

- MM_PASSWORD= fas23dAf43 

1.3.6 Datenbank Verbindung anpassen

Nun müssen wir noch eine Zeile anpassen, in der wir Mattermost mit unserer Datenbank verbinden. Hier müssen wir alle unsere Verbindungsdaten angeben.

Bei mir ist das:

  • DB-Server: db
  • Nutzername: mmuser
  • Passwort: fas23dAf43
  • Datenbank-Name: mattermost

Syntax

MM_SQLSETTINGS_DATASOURCE=postgres://${MM_USERNAME}:${MM_PASSWORD}@db:5432/${MM_DBNAME}?sslmode=disable&connect_timeout=10

vorher

ASOURCE=postgres://mmuser:mmuser_password@db:5432/mattermost?sslmode=disable&connect_timeout=10

angepasst

MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:fas23dAf43@db:5432/mattermost?sslmode=disable&connect_timeout=10

1.3.7 Container bauen

Nun lassen wir uns unseren Container zusammenbauen. Dazu gibst du folgendes ein:

cd /opt/containers/mattermost 

docker compose build 

Dieser Vorgang kann einige Minuten dauern.

2. Mattermost starten

Gib nun folgendes ein, um deinen Mattermost Container zu starten:

docker compose -f /opt/containers/mattermost/docker-compose.yml up -d 

Dies dauert nun einige Minuten. Danach kannst du auf deine Domain gehen. Bei mir ist das https://chat.testbereich.net und solltest dann folgendes sehen.

Mattermost starten - Administrator-Konto anlegen

Hier musst du jetzt einen Administrator Account anlegen. Gib dazu eine E-Mail-Adresse, Passwort sowie Nutzername an.

Anschließend siehst du dieses Fenster. Hier klicken wir auf „Go to System Console“.

Zur System Console in Mattermost

In diesem Menü können wir nun alle Einstellungen von Mattermost vornehmen.

3. Sprache anpassen

3.1 Serversprache anpassen

Nun ändern wir die Sprache unseres Servers auf Deutsch. Dazu gehst du auf „Localization“.

Serversprache anpassen in Mattermost durch Klick auf Localization

Hier kannst du nun die Sprachen auswählen, die standardmäßig verwendet werden sollen.

Optionen der Default-Sprache in Mattermost

3.2 Sprache des aktuellen Benutzers ändern

Um die Sprache deines aktuellen Benutzers zu ändern, klickst du auf die „System Console“ oben links und wählst „Team Selection“ aus.

Sprache des aktuellen Benutzers ändern in Mattermost unter Team Selection

Nun erstellen wir ein neues Team. Ein Team ist eine Struktur, innerhalb derer später die Leute miteinander kommunizieren können. Man kann diese Teams später jederzeit wieder anpassen.

Neues Team in Mattermost erstellen

Nun vergibst du einen neuen Teamnamen.

Teamnamen in Mattermost vergeben

Jetzt bekommt dein Team noch eine URL. Hier klickst du auf „finish“.

Team-URL in Mattermost angeben

Nun solltest du diese Ansicht sehen.

Mattermost Chat Übersicht

Hier klickst du nun auf deinen Namen oben links und wählst dann „Account Settings“ aus.

Account Settings in Mattermost auswählen

Als nächstes wählst du „Display“ aus.

Display-Option in Mattermost

Hier scrollst du bis nach ganz unten. Dort kannst du die Sprache ändern.

Sprachauswahl in Mattermost

Nun siehst du alles auf Deutsch.

easyname ist ein erfolgreicher und bekannter österreichischer Anbieter von Cloud-Services, Domains sowie Webhosting bis hin zur Server-Infrastruktur und gehört seit 2020 zur dogado group.
Das Unternehmen ist seit 2006 in Österreich erfolgreich am Markt und inzwischen auch in vielen anderen Ländern weltweit tätig. Sowohl das Team als auch die gehosteten Daten befinden sich in Österreich.

easyname liegt die Datensicherheit besonders am Herzen und stellt daher zu jedem Hosting-Paket auch kostenlose SSL-Zertifikate zur Verfügung. Mit intuitiven Tools zur Erstellung von Websites und Webshops und mit Easy Install Apps wie WordPress, Joomla oder PrestaShop können alle easyname-Kunden schnell in die Online-Welt einsteigen.