1. Index
  2. Debian
  3. Desktop
  4. Heimserver
  5. Webserver

Im Team chatten

Mattermost bietet eine freie Alternative zu Slack. Es ermöglicht Teams, sich in mehreren Kanälen zu bestimmten Themen auszutauschen. Mattermost verwendet Websockets für Echtzeit-Kommunikation und unterstützt Markdown-Syntax und Datei-Anhänge. Leider unterstützt nur die kommerzeille Enterprise Edition Authentifizierung per LDAP.

Programm installieren

Debian bietet kein Paket für Mattermost an, daher laden wir das Archiv von der Downloadseite des Projekts herunter und entpacken es im Zielverzeichnis.

version=5.22.2
cd /srv
curl https://releases.mattermost.com/$version/mattermost-$version-linux-amd64.tar.gz | tar xz 
adduser --system --group --home /srv/mattermost mattermost
chown -R mattermost.mattermost  /srv/mattermost/{client,config,data,logs,plugins}

Datenbank anlegen

Den Chatverlauf speichern wir in PostgreSQL und erzeugen dafür einen Benutzer und eine leere Datenbank.

su postgres -c "createuser --pwprompt mattermost"
su postgres -c "createdb --owner mattermost mattermost"

Daemon konfigurieren

Die zentralle Konfiguration enthält die Zugangsdaten zu allen externen Diensten, beginnt aber mit Einstellungen zur Lokalisierung.

/opt/mattermost/config/config.json
{ "ServiceSettings": { "SiteURL": "https://mattermost.illusioni.de", ListenAddress": ":8065", }, "SqlSettings": { "DriverName": "postgres", "DataSource": "postgres://mattermost:Password@localhost:5432/mattermost?connect_timeout=10", } "PasswordSettings": { "MinimumLength": 16, "Lowercase": false, "Number": false, "Uppercase": false, "Symbol": false }, "FileSettings": { "Directory": "/srv/mattermost/", }, "ComplianceSettings": { "Directory": "/srv/mattermost/", }, }

Apache konfigurieren

Der eingebaute Webserver lauscht auf Port 8065.

/etc/apache2/sites-enabled/mattermost.illusioni.de
<VirtualHost *:443> ServerName mattermost.illusioni.de ServerAdmin webmaster@illusioni.de ErrorLog ${APACHE_LOG_DIR}/illusioni.de.error.log CustomLog ${APACHE_LOG_DIR}/illusioni.de.access.log combined Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" SSLCertificateFile /etc/letsencrypt/live/illusioni.de/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/illusioni.de/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ProxyPreserveHost On RewriteEngine On RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC,OR] RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L] <Location /> Require all granted ProxyPass http://127.0.0.1:8065/ ProxyPassReverse http://127.0.0.1:8065/ ProxyPassReverseCookieDomain 127.0.0.1 mattermost.illusioni.de </Location> </VirtualHost>

Wir aktivieren diese Konfiguration und das Modul für Websockets.

a2ensite mattermost.illusioni.de
a2enmod proxy_wstunnel

Daemon starten

Wir erzeugen die Unit für Systemd.

/etc/systemd/system/mattermost.service
[Unit] Description=Mattermost After=network.target After=postgresql.service Requires=postgresql.service [Service] Type=notify ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 Restart=always RestartSec=10 WorkingDirectory=/opt/mattermost User=mattermost Group=mattermost LimitNOFILE=49152 [Install] WantedBy=multi-user.target

…und starten sie.

systemctl enable --now  mattermost

Benutzer administrieren

Der erste Benutzer, der sich anmeldet und ein Team erstellt, wird automatisch zum Administrator.

Systemkonsole
	Authentifizierung
		Registrieren
			Aktiviere Kontoerstellung: wahr
			Begrenze Kontoerstellung: illusioni.de
			Aktiviere offenen Server: falsch
			Aktiviere E-Mail-Einladungen: wahr

Literatur

  1. Mattermost Documentation: Installing Mattermost on Debian Buster