Wähle einen Artikel
Mattermost Chatsystem auf VPS installieren
Mattermost Chatsystem auf VPS installieren

Volle Kontrolle mit deinem eigenen VPS von easyname

Mit einem VPS von easyname hast du volle Kontrolle über deinen Server – flexibel, skalierbar und umweltbewusst betrieben in ISO-zertifizierten Rechenzentren in Österreich. Ideal für deine Anwendungen, Projekte und maximale Performance.

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:  /de/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.

Screenshot einer Mattermost-Registrierungsseite: Felder für E-Mail, Benutzername, Passwort und Create Account.

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“.

Screenshot einer Mattermost-Seite: Titel Mattermost, Abschnitt 'Teams you can join' sowie Links 'Create a team' und '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“.

Dunkles System-Console-Layout mit vertikalem Seitenmenü; Localization ist rot hervorgehoben.

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

Lokalisierungs-Einstellungen: Default Server Language Deutsch; Default Client Language Deutsch; Available languages: Select

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.

Dunkler Kopfbereich mit Hamburger-Menü oben rechts; geöffnetes Menü mit Team Selection, Administrator's Guide, Log Out.

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.

Mattermost-Startseite: Titel Mattermost, Abschnitt Teams you can join, Button Create a team, Link Go to System Console.

Nun vergibst du einen neuen Teamnamen.

Weiße Seite mit Mattermost-Logo, Untertitel, Überschrift Team Name, leeres Eingabefeld und blauem Next-Button.

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

Screenshot eines Mattermost-Formulars mit Team-URL-Feld, Hinweis-Liste und blauem Finish-Button.

Nun solltest du diese Ansicht sehen.

Screenshot einer Web-App: linke blaue Seitenleiste mit Kanälen; zentraler weißer Bereich mit Welcome to: Mattermost und Next.

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

Blauer Bereich oben mit Avatar-Kreis, Name dogado und @admin; Dropdown mit Account Settings (hervorgehoben) und Invite People.

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

Blaues Einstellungsmenü mit Einträgen: Account Settings, General, Security, Notifications, Display; Display ist rot umrandet.

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

Drei Zeilen: Message Display (Standard), Channel Display (Full width), Language (English); Edit-Link rechts.

Nun siehst du alles auf Deutsch.

Zu unseren VPS Paketen

Nächster Artikel
Minecraft Server auf Linux VPS installieren
Weitere passende Themen