Mattermost Installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(Achtung für 32 Bit)
 
(14 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 5: Zeile 5:
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].


{{Textkasten|rot|Achtung:|Mattermost stellt nur einen Download für 64-Bit Systeme zur Verfügung. Diese Version ist bei Hostsharing für den Einsatz auf Managed Servern geeignet. Bei den Shared Hosting Servern h01 bis h08 handelt es sich aus historischen Gründe um 32-Bit Systeme.
== Vorbereitungen ==
Beachte dazu den Hinweis [https://wiki.hostsharing.net/index.php?title=Mattermost_Installieren#32_Bit_Version am Ende dieses Artikels] }}


== 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 "Eigener Daemon". Im Bereich des Shared Hosting ist
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".
diese Option kostenpflichtig, auf einem Managed Server melden Sie den "Eigener Daemon" an. Bei der Anmeldung geben Sie einen
User an, der später als Service-User dient, d.h. unter dieser User-Kennung läuft später der Mattermost-Server. Der User sollte
vor der Anmeldung mit HSAdmin angelegt werden. Als User nutzen wir im Folgenden "xyz00-chat".


Ebenfalls mit HSAdmin wird ein (Sub-)Domain für den Chat-Dienst aufgeschaltet. Die Domain muss dem User "xyz00-chat" zugeordnet
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".
werden. In dieser Anleitung nutze ich die Domain "beispiel-chat.de".


Weiterhin benötigt Mattermost eine MySQL- oder eine PostgreSQL-Datenbank. Wir legen 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 am 31.1.2017 ist 3.6.1):
Als User "xyz00-chat" lade ich die Software herunter (aktuelle Version siehe [https://github.com/mattermost/mattermost-server/releases]):


     wget https://releases.mattermost.com/3.6.1/mattermost-3.6.1-linux-amd64.tar.gz
     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-3.6.1-linux-amd64.tar.gz
     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 36: 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": "xyz00.hostsharing.net:34567",
        "WebsocketURL": "wss://beispiel-chat.de",
         "ListenAddress": "127.0.0.1:34567",
         ...
         ...


Zeile 93: 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://xyz00.hostsharing.net:34567%{REQUEST_URI}  [proxy]
     RewriteRule .* ws://127.0.0.1:34567%{REQUEST_URI}  [proxy]
      
      
     RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
     RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
     RewriteRule .* http://xyz00.hostsharing.net:34567%{REQUEST_URI} [proxy]
     RewriteRule .* http://127.0.0.1:34567%{REQUEST_URI} [proxy]
     RequestHeader set X-Forwarded-Proto "https"
     RequestHeader set X-Forwarded-Proto "https"


Zeile 109: Zeile 105:


     cd $HOME/mattermost
     cd $HOME/mattermost
     ./bin/platform
     ./bin/mattermost


Ein kleines Start-Skript könnte so aussehen:
Ein kleines Start-Skript könnte so aussehen:
Zeile 117: Zeile 113:
     cd $HOME/mattermost
     cd $HOME/mattermost
     rm -f running.pid
     rm -f running.pid
     nohup ./bin/platform 1>/dev/null 2>&1 &
     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.
== 32 Bit Version ==
Achtung: Mattermost stellt das oben benutzte Installationspaket nur mit einem 64-Bit-Programm zur Verfügung.
Für die Installation im Shared Hosting wird ein 32-Bit Binary benötigt! Dazu muss man die Sourcen von Github
(siehe Link unten) herunterladen und mit einer aktuellen Go-Version das Platform-Binary für "386" (env GOOS=linux GOARCH=386) kompilieren. Das
Programm "$HOME/mattermost/bin/platform" in der oben beschriebenen Installation kann man durch das selbstgebaute
32-Bit Binär-Programm austauschen.


== Links ==
== Links ==
Zeile 135: 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.

Links