Mattermost Chatsystem auf VPS installieren
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.
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“.
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“.
Hier kannst du nun die Sprachen auswählen, die standardmäßig verwendet werden sollen.
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.
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.
Nun vergibst du einen neuen Teamnamen.
Jetzt bekommt dein Team noch eine URL. Hier klickst du auf „finish“.
Nun solltest du diese Ansicht sehen.
Hier klickst du nun auf deinen Namen oben links und wählst dann „Account Settings“ aus.
Als nächstes wählst du „Display“ aus.
Hier scrollst du bis nach ganz unten. Dort kannst du die Sprache ändern.
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.