Mattermost Installieren: Unterschied zwischen den Versionen
(→Vorbereitungen: 32-Bit weg, Link, sonst minor changes) |
Tim00 (Diskussion | Beiträge) K (→Links) |
||
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
Mattermost ist eine selbst-gehostete Alternative zum Cloud-Dienst [https://de.wikipedia.org/wiki/Slack_(Software) Slack] oder zum proprietären [https://en.wikipedia.org/wiki/HipChat HipChat]. | Mattermost ist eine selbst-gehostete Alternative zum Cloud-Dienst [https://de.wikipedia.org/wiki/Slack_(Software) Slack] oder zum proprietären [https://en.wikipedia.org/wiki/HipChat HipChat]. | ||
== Vorbereitungen == | == Vorbereitungen == | ||
Zeile 15: | Zeile 13: | ||
Ebenfalls mit HSAdmin muss eine (Sub-)Domain für den Chat-Dienst aufgeschaltet/angelegt werden. Die Domain muss dem User "xyz00-chat" zugeordnet werden. In dieser Anleitung nutze ich die Domain "beispiel-chat.de". | Ebenfalls mit HSAdmin muss eine (Sub-)Domain für den Chat-Dienst aufgeschaltet/angelegt werden. Die Domain muss dem User "xyz00-chat" zugeordnet werden. In dieser Anleitung nutze ich die Domain "beispiel-chat.de". | ||
Weiterhin benötigt Mattermost eine MariaDB- oder eine PostgreSQL-Datenbank. Wir legen also mit Hilfe von HSAdmin einen PostgreSQL-User ("xyz00_mm_user" mit Passwort "geheim") und eine Datenbank ("xyz00_mm_db" mit dem Eigentümer "xyz00_mm_user") an. | Weiterhin benötigt Mattermost eine MariaDB- oder eine PostgreSQL-Datenbank. Wir empfehlen PostgreSQL und legen also mit Hilfe von HSAdmin einen PostgreSQL-User ("xyz00_mm_user" mit Passwort "geheim") und eine Datenbank ("xyz00_mm_db" mit dem Eigentümer "xyz00_mm_user") an. | ||
== Installation == | == Installation == | ||
Als User "xyz00-chat" lade ich die Software herunter (aktuelle Version | Als User "xyz00-chat" lade ich die Software herunter (aktuelle Version siehe [https://github.com/mattermost/mattermost-server/releases]): | ||
wget https://releases.mattermost.com/ | wget https://releases.mattermost.com/7.9.2/mattermost-7.9.2-linux-amd64.tar.gz | ||
Die tar.gz-Datei wird ausgepackt: | Die tar.gz-Datei wird ausgepackt: | ||
tar xzf mattermost- | tar xzf mattermost-7.9.2-linux-amd64.tar.gz | ||
Dann finden wir im $HOME des Users "xyz00-chat" ein Unterverzeichnis "$HOME/mattermost" | Dann finden wir im $HOME des Users "xyz00-chat" ein Unterverzeichnis "$HOME/mattermost" | ||
Zeile 33: | Zeile 31: | ||
Die Konfiguration von Mattermost nehmen wir in der Datei $"HOME/mattermost/config/config.json" vor: | Die Konfiguration von Mattermost nehmen wir in der Datei $"HOME/mattermost/config/config.json" vor: | ||
Im Abschnitt "ServiceSettings" definieren wir die Parameter "SiteURL" und "ListenAddress": | Im Abschnitt "ServiceSettings" definieren wir die Parameter "SiteURL", "WebsocketURL" und "ListenAddress": | ||
"ServiceSettings": { | "ServiceSettings": { | ||
"SiteURL": "https://beispiel-chat.de", | "SiteURL": "https://beispiel-chat.de", | ||
"ListenAddress": " | "WebsocketURL": "wss://beispiel-chat.de", | ||
"ListenAddress": "127.0.0.1:34567", | |||
... | ... | ||
Zeile 90: | Zeile 89: | ||
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR] | RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR] | ||
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] | RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] | ||
RewriteRule .* ws:// | RewriteRule .* ws://127.0.0.1:34567%{REQUEST_URI} [proxy] | ||
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f | RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f | ||
RewriteRule .* http:// | RewriteRule .* http://127.0.0.1:34567%{REQUEST_URI} [proxy] | ||
RequestHeader set X-Forwarded-Proto "https" | RequestHeader set X-Forwarded-Proto "https" | ||
Zeile 106: | Zeile 105: | ||
cd $HOME/mattermost | cd $HOME/mattermost | ||
./bin/ | ./bin/mattermost | ||
Ein kleines Start-Skript könnte so aussehen: | Ein kleines Start-Skript könnte so aussehen: | ||
Zeile 114: | Zeile 113: | ||
cd $HOME/mattermost | cd $HOME/mattermost | ||
rm -f running.pid | rm -f running.pid | ||
nohup ./bin/ | nohup ./bin/mattermost 1>/dev/null 2>&1 & | ||
echo $! > running.pid | echo $! > running.pid | ||
Zum automatischen Start des Servers bei einem Reboot sollte | Zum automatischen Start des Servers bei einem Reboot sollte | ||
man einen Eintrag "@reboot" in die crontab vornehmen. | man einen Eintrag "@reboot" in die crontab vornehmen. | ||
== Links == | == Links == | ||
Zeile 132: | Zeile 123: | ||
*[https://about.mattermost.com/ Mattermost Homepage (Englisch)] | *[https://about.mattermost.com/ Mattermost Homepage (Englisch)] | ||
*[https://github.com/mattermost/platform git Repository bei Github] | *[https://github.com/mattermost/platform git Repository bei Github] | ||
*[https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/mattermost Ansible Playbook für Hostsharing] | |||
---- | ---- | ||
[[Kategorie:HSDoku]] | [[Kategorie:HSDoku]] | ||
[[Kategorie:Installationsanleitungen]] | [[Kategorie:Installationsanleitungen]] | ||
[[Kategorie:Ansible Playbook]] | |||
[[Kategorie:Software]] | [[Kategorie:Software]] | ||
[[Kategorie:Eigene Daemons]] | [[Kategorie:Eigene Daemons]] |
Aktuelle Version vom 26. April 2023, 19:59 Uhr
Über Mattermost
Mattermost ist ein Chat-Server unter einer freien MIT Lizenz. Der Server ist in der Programmiersprache go implementiert.
Mattermost ist eine selbst-gehostete Alternative zum Cloud-Dienst Slack oder zum proprietären HipChat.
Vorbereitungen
Die hier beschriebene Installation benötigt bei Hostsharing die Paket-Option "individuelle Serverdienste (1 Daemon)". Im Managed Webspace ist diese Option kostenpflichtig: https://www.hostsharing.net/angebote/managed-webspace/
Auf einem Managed Server melden Sie einfach die kostenlose Option "Eigener Daemon" an. Bei der Anmeldung geben Sie einen User an (dient als Admin/Service-User). Unter dieser User-Kennung läuft später der Mattermost-Server. Der User sollte vor der Anmeldung mit HSAdmin angelegt werden. Als User-Beispiel nutzen wir im Folgenden "xyz00-chat".
Ebenfalls mit HSAdmin muss eine (Sub-)Domain für den Chat-Dienst aufgeschaltet/angelegt werden. Die Domain muss dem User "xyz00-chat" zugeordnet werden. In dieser Anleitung nutze ich die Domain "beispiel-chat.de".
Weiterhin benötigt Mattermost eine MariaDB- oder eine PostgreSQL-Datenbank. Wir empfehlen PostgreSQL und legen also mit Hilfe von HSAdmin einen PostgreSQL-User ("xyz00_mm_user" mit Passwort "geheim") und eine Datenbank ("xyz00_mm_db" mit dem Eigentümer "xyz00_mm_user") an.
Installation
Als User "xyz00-chat" lade ich die Software herunter (aktuelle Version siehe [1]):
wget https://releases.mattermost.com/7.9.2/mattermost-7.9.2-linux-amd64.tar.gz
Die tar.gz-Datei wird ausgepackt:
tar xzf mattermost-7.9.2-linux-amd64.tar.gz
Dann finden wir im $HOME des Users "xyz00-chat" ein Unterverzeichnis "$HOME/mattermost"
Konfiguration
Die Konfiguration von Mattermost nehmen wir in der Datei $"HOME/mattermost/config/config.json" vor:
Im Abschnitt "ServiceSettings" definieren wir die Parameter "SiteURL", "WebsocketURL" und "ListenAddress":
"ServiceSettings": { "SiteURL": "https://beispiel-chat.de", "WebsocketURL": "wss://beispiel-chat.de", "ListenAddress": "127.0.0.1:34567", ...
Dabei sei "https://beispiel-chat.de" die Domain, unter der der Chat betrieben werden soll und "34567" der Port, der vom Hostsharing-Service für den "Eigenen Daemon" zugewiesen wurde.
Im Abschnitt "TeamSettings" kann für den Chat ein Name vergeben werden:
"TeamSettings": { "SiteName": "Beispiel-Chat", ...
Im Abschnitt "SqlSettings" wird die PostgreSQL Datenbank konfiguriert:
"SqlSettings": { "DriverName": "postgres", "DataSource": "postgres://xyz00_mm_user:geheim@127.0.0.1:5432/xyz00_mm_db?sslmode=disable\u0026connect_timeout=10", ...
Weiter noch unter "FileSettings" und "EMailSettings":
"FileSettings": { "MaxFileSize": 4096000, "DriverName": "local", "Directory": "./data/", ...
"EmailSettings": { "EnableSignUpWithEmail": true, "EnableSignInWithEmail": true, "EnableSignInWithUsername": true, "SendEmailNotifications": true, "RequireEmailVerification": true, "FeedbackName": "Beispiel-Chat", "FeedbackEmail": "mattermost@beispiel-chat.de", "FeedbackOrganization": "Beispiel", "SMTPUsername": "", "SMTPPassword": "", "SMTPServer": "localhost", "SMTPPort": "25", ...
Im Verzeichnis "htdocs-ssl" unter "$HOME/doms/beispiel-chat.de" wird eine ".htaccess"-Datei abgelegt, die dafür sorgt, dass alle Requests an den Mattermost-Server weitergegeben werden. Dabei verwendet Mattermost auch Websocket-Verbindungen ("ws://"). Inhalt der ".htaccess":
DirectoryIndex disabled RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/api/v1/websocket [NC,OR] RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://127.0.0.1:34567%{REQUEST_URI} [proxy] RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule .* http://127.0.0.1:34567%{REQUEST_URI} [proxy] RequestHeader set X-Forwarded-Proto "https"
Im Verzeichnis "htdocs" wird eine ".htaccess"-Datei abgelegt, die für eine Weiterleitung auf das https-Protokoll sorgt:
Redirect permanent / https://beispiel-chat.de/
Start des Servers
Der Chat-Server lässt sich starten mit:
cd $HOME/mattermost ./bin/mattermost
Ein kleines Start-Skript könnte so aussehen:
#!/bin/bash export HOME=/home/pacs/xyz00/users/chat cd $HOME/mattermost rm -f running.pid nohup ./bin/mattermost 1>/dev/null 2>&1 & echo $! > running.pid
Zum automatischen Start des Servers bei einem Reboot sollte man einen Eintrag "@reboot" in die crontab vornehmen.