-
Was ist ein vServer?
-
vServer und Sicherheit
-
vServer - Anwendungsfälle
-
vServer bei dogado
-
vServer und Plesk
-
vServer Betriebssyteme
-
vServer Glossar
0. Überblick
- Verwendetes System: Debian 11 64 bit
- vServer Cloud Server XXL
- 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 (https://mattermost.com) 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. Ihr könnt 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 finden Sie hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren
1.3.1 Daten von git kopieren
Nun kopieren wir uns die aktuelle Version von Mattermost. Dazu gebt ihr 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. Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst 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 abspeichen. Dazu geben wir folgendes in der Konsole ein:
mkdir -p /opt/containers/mattermost/volumes/app/mattermost/
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 gebt ihr folgendes ein:
rm /opt/containers/mattermost/docker-compose.yml
nano /opt/containers/mattermost/docker-compose.yml
Nun kopiert ihr 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 (Hier bitte die `` Zeichen ignorieren)
- ./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 müsst ihr noch den Hostnamen anpassen, über welchen später DokuWiki erreichbar sein soll.
Diese beiden Zeilen müsst ihr 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 ihr Mattermost direkt auf eurer „Hauptdomain“ betreiben wollt, dann ändert ihr 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 sicheren Kennwörter für unsere Datenbank. Achtet darauf, dass ihr jeweils bei PostgresSQL als auch bei Mattermost das identische Kennwort eingebt, 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
MM_SQLSETTINGS_DATASOURCE=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 gebt ihr folgendes ein:
cd /opt/containers/mattermost
docker compose build
Dieser Vorgang kann einige Minuten dauern.
2. Mattermost starten
Gebt nun folgendes ein, um euren Mattermost Container zu starten:
docker compose -f /opt/containers/mattermost/docker-compose.yml up -d
Dies dauert nun einige Minuten. Danach könnt ihr auf eure Domain gehen. Bei mir ist das https://chat.testbereich.net und solltet dann folgendes sehen.
Hier müsst ihr jetzt einen Administrator Account anlegen. Gebt dazu eine E-Mail-Adresse, Passwort sowie Nutzername an.
Anschließend seht ihr 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 geht ihr auf „Localization“.
Hier könnt ihr nun die Sprachen auswählen, die standardmäßig verwendet werden sollen.
3.2 Sprache des aktuellen Benutzers ändern
Um die Sprache eures aktuellen Benutzers zu ändern, klickt ihr auf die „System Console“ oben links und wählt „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 vergebt ihr einen neuen Teamnamen.
Jetzt bekommt euer Team noch eine URL. Hier klickt ihr auf „finish“.
Nun solltet ihr diese Ansicht sehen.
Hier klickt ihr nun auf euren Namen oben links und wählt dann „Account Settings“ aus.
Als nächstes wählt ihr „Display“ aus.
Hier scrollt ihr bis nach ganz unten. Dort könnt ihr die Sprache ändern.
Nun seht ihr alles auf Deutsch.