Mattermost Installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(Update auf v10.x, RAM statt DAEMON)
 
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 7: Zeile 7:
== Vorbereitungen ==
== 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/
Die hier beschriebene Installation benötigt bei Hostsharing die Paket-Option "RAM". Benötigt werden etwa 512 MB. 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".
Für den Betrieb des Dienstes legen Sie einen Service-User mit Hilfe von HSAdmin an. 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".
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".
Zeile 20: Zeile 20:


<syntaxhighlight lang=shell>
<syntaxhighlight lang=shell>
wget https://releases.mattermost.com/7.9.2/mattermost-7.9.2-linux-amd64.tar.gz
wget https://releases.mattermost.com/10.2.1/mattermost-10.2.1-linux-amd64.tar.gz
</syntaxhighlight>
</syntaxhighlight>
Die tar.gz-Datei wird ausgepackt:
Die tar.gz-Datei wird ausgepackt:


<syntaxhighlight lang=shell>
<syntaxhighlight lang=shell>
tar xzf mattermost-7.9.2-linux-amd64.tar.gz
tar xzf mattermost-10.2.1-linux-amd64.tar.gz
</syntaxhighlight>
</syntaxhighlight>


Zeile 124: Zeile 124:
</syntaxhighlight>
</syntaxhighlight>


Ein kleines Start-Skript könnte so aussehen:
Zum automatischen Start des Servers bei einem Reboot sollte
man einen systemd service einrichten:
 
~/.config/systemd/user/mattermost.service
<syntaxhighlight lang=ini>
[Unit]
Description=Mattermost Service
 
[Service]
WorkingDirectory=%h/mattermost
ExecStart=%h/mattermost/bin/mattermost server -c %h/mattermost/config/config.json
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
 
[Install]
WantedBy=default.target
</syntaxhighlight>


Service aktivieren und starten:
<syntaxhighlight lang=shell>
<syntaxhighlight lang=shell>
#!/bin/bash
$ systemctl --user enable mattermost.service
export HOME=/home/pacs/xyz00/users/chat
$ systemctl --user start mattermost.service
cd $HOME/mattermost
rm -f running.pid
nohup ./bin/mattermost 1>/dev/null 2>&1 &
echo $! > running.pid
</syntaxhighlight>
</syntaxhighlight>
Zum automatischen Start des Servers bei einem Reboot sollte
man einen Eintrag "@reboot" in die crontab vornehmen.


== Links ==
== Links ==

Aktuelle Version vom 13. Dezember 2024, 19:00 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 "RAM". Benötigt werden etwa 512 MB. Im Managed Webspace ist diese Option kostenpflichtig: https://www.hostsharing.net/angebote/managed-webspace/

Für den Betrieb des Dienstes legen Sie einen Service-User mit Hilfe von HSAdmin an. 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/10.2.1/mattermost-10.2.1-linux-amd64.tar.gz

Die tar.gz-Datei wird ausgepackt:

tar xzf mattermost-10.2.1-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

Zum automatischen Start des Servers bei einem Reboot sollte man einen systemd service einrichten:

~/.config/systemd/user/mattermost.service

[Unit]
Description=Mattermost Service

[Service]
WorkingDirectory=%h/mattermost
ExecStart=%h/mattermost/bin/mattermost server -c %h/mattermost/config/config.json
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10

[Install]
WantedBy=default.target

Service aktivieren und starten:

$ systemctl --user enable mattermost.service
$ systemctl --user start mattermost.service

Links