====== mattermost ====== mattermost hat den Anspruch eine opensource-Alternativen zu dem bekannten Diensten slack und [[microsoft teams]] zu bieten. Es kann in Eigenregie betrieben werden. Es stehen [[https://about.mattermost.com/download/|zahlreiche Clients für Mobil- und Desktopbetriebssyteme]] zur Verfügung. Wichtige Features (z.B. push aufs Handy bzw. Kanalbenachrichtigungen ohne Erwähnung, LDAP-Anbindung) erfordern [[https://about.mattermost.com/features/#featuresCompare|eine enterprise-Version]]. Alternativ kann [[https://www.devopsaurus.com/mattermost-gitlab-freeipa-ldap-integration/|gitlab Oauth-backen]] dienen bzw. [[https://github.com/Crivaledaz/Mattermost-LDAP|Mattermost-LDAP Module]]. In version v5.32 kam die freie Sortierbarkeit von Kanälen dazu und eigene Kategorien, siehe https://mattermost.com/blog/custom-collapsible-channel-categories/. Ab Version 6.x zogen die Preise an und der Hersteller fing an mattermost als eine Art Produktivitätsplattform zu positionieren. ===== Links ===== * [[https://about.mattermost.com/features/|mattermost homepage]] * [[https://docs.mattermost.com/overview/index.html|Mattermost Overview]] * [[https://docs.mattermost.com/administration/changelog.html|Changelog]] * [[https://docs.mattermost.com/administration/extended-support-release.html|ESR schedule]] * [[https://docs.mattermost.com/onboard/sso-saml-keycloak.html|Configure SAML with Keycloak]] ===== Webhooks ===== Nützlich sind die webhooks, damit kann mattermost auch von anderen Programmen als Nachrichtenzentrale benutzt werden. Es sind HTTP POST mit JSON-Payload. * [[https://docs.mattermost.com/developer/webhooks-incoming.html|webhooks-Doku]] * [[https://github.com/NDrive/nagios-mattermost|Nagios]] * [[https://docs.ansible.com/ansible/latest/modules/mattermost_module.html|Ansible hat ein modul für mattermost]] ===== Installation ===== Leider existieren keine offiziellen Pakete, eigene Pakete können mit dem [[https://github.com/trashcan/mattermost-packager|mattermost-packager]] erzeugt werden. [[https://docs.mattermost.com/guides/administrator.html#installing-mattermost|detaillierte Anleitungen für verschiedene Distributionen]] bzw. ein paar mehr oder weniger gute rollen auf ansible-galaxy. ===== Kurzanleitung ===== Hallo, mattermost ist unser Instant messenger, damit lassen sich für kleine Absprachen so einige mails (mit CC) sparen. Die Oberfläche ist so ähnlich wie slack und damit nicht so unübersichtlich wie teams in Sachen chat. Bei direkten Ansprachen "@all" im Channel oder "@Benutzername" bekommt man auch mails falls kein Client angemeldet ist. Das lässt sich aber einstellen. Clients für Handy/PC usw. bekommt ihr hier: https://mattermost.com/download/# ===== Konfiguration ===== Datei conf/config.json :!: Die Konfiguration kann nicht ohne backup im laufenden Betrieb verändert werden, beim unit-neustart via systemctl werden die Änderungen resettet (u.U. auch auf die leere Standardconfig!). ==== Teams ==== ** löschen**: ''/opt/mattermost/bin/mattermost team delete $NAME'' (2x mit YES antworten) ===== Verzeichnisstruktur ===== Programmverzeichnis /opt/mattermost: Eigentümer root, Gruppe root, nur die folgende Ordner verlinken in das Datenverzeichnis. * config -> ../mattermost-daten/config/ * data -> ../mattermost-daten/data/ * logs -> ../mattermost-daten/logs/ * plugins -> ../mattermost-daten/plugins/ Datenverzeichnis /opt/mattermost-daten: Eigentümer mattermost, Gruppe mattermost * config * data * logs * plugins ===== systemd Unitfile ===== ''/lib/systemd/system/mattermost.service'' [Unit] Description=Mattermost After=network.target After=mysql.service [Service] Type=notify ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=60 Restart=always RestartSec=10 WorkingDirectory=/opt/mattermost User=mattermost Group=mattermost LimitNOFILE=49152 [Install] WantedBy=multi-user.target ===== Upgrade ===== [[https://docs.mattermost.com/administration/important-upgrade-notes.html|Important Upgrade Notes]] Grundsätzlich ist durch eine Trennung von Daten und Code das upgrade relativ stressfrei und kann mit symlinks passieren: - service mattermost stop - backup machen - symlink mattermost wegnehmen!! (wird sonst durch neue version ersetzt) - wget https://releases.mattermost.com/$VERSION/mattermost-$VERSION-linux-amd64.tar.gz - tar xvjf mattermost-$VERSION-linux-amd64.tar.gz - mv matermost mattermost-x.y.z - symlink mattermost auf neue Version zeigen lassen:ln -s mattermost-x.y.z mattermost - symlinks für die Verzeichnisse unterhalb von mattermost-daten anlegen: - inhaltlich: - config -> ../mattermost-daten/config/ - data -> ../mattermost-daten/data/ - logs -> ../mattermost-daten/logs/ - PluginSettings -> Directory: Standard ist: plugins -> ../mattermost-daten/plugins/ - **PluginSettings -> Client-Directory muss existieren**, Standard ist "./client/plugins": mkdir mattermost/client/plugins && chown mattermost.mattermost mattermost/client/plugins - Befehle: cd mattermost mv config config-empty ln -s ../mattermost-daten/config ln -s ../mattermost-daten/data rmdir logs ln -s ../mattermost-daten/logs ln -s ../mattermost-daten/plugins mkdir client/plugins chown mattermost.mattermost client/plugins - setcap cap_net_bind_service=+ep /opt/mattermost/bin/mattermost ((vor 5.x: setcap cap_net_bind_service=+ep /opt/mattermost/bin/platform)) - systemctl start mattermost ===== Features ===== Wunschliste: * [[https://mattermost.atlassian.net/browse/MM-10057|Guest Accounts]] (Website Bot etc.) ===== Problembehebung ===== ==== Benutzername ändern ==== Geht leider nicht auf der Oberfläche, aber in der Datenbank USE mattermost; Update Users SET Username = 'NEU' WHERE Username = 'ALT'; ==== Nachrichten bleiben im Status ungelesen ==== Fehlermeldung: ''MarkChannelsAsViewed: Unable to update the last viewed at time., failed to fetch threads: Error 1267: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '=''' Bugreport: [[https://forum.mattermost.org/t/solved-after-upgrading-to-5-29-messages-fail-to-mark-as-read/10816|[SOLVED] After upgrading to 5.29 messages fail to mark as read]] Lösung: Die Datenbank muss angepasst werden: mysql -u mmuser -p < changes.sql changes.sql: ALTER DATABASE mattermost CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE mattermost; alter table Audits CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Bots CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table ChannelMemberHistory CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table ChannelMembers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Channels CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table ClusterDiscovery CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table CommandWebhooks CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Commands CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Compliances CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Emoji CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table FileInfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table GroupChannels CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table GroupMembers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table GroupTeams CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table IncomingWebhooks CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Jobs CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Licenses CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table LinkMetadata CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table OAuthAccessData CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table OAuthApps CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table OAuthAuthData CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table OutgoingWebhooks CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table PluginKeyValueStore CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Preferences CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table ProductNoticeViewState CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table PublicChannels CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Reactions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Roles CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Schemes CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Sessions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table SidebarCategories CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table SidebarChannels CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Status CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Systems CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table TeamMembers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Teams CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table TermsOfService CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table ThreadMemberships CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Threads CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Tokens CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table UploadSessions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table UserAccessTokens CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table UserGroups CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table UserTermsOfService CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; alter table Users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ==== MySQL 8.0 ==== err_where":"GetAllTeamsPage","http_code":500,"err_details":"failed to find Teams: Error 1267: Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='"} Lösung: Die Datenbank muss angepasst werden, siehe auch: https://docs.mattermost.com/install/software-hardware-requirements.html mysql -u mmuser -p < changes.sql changes.sql: ALTER DATABASE mattermost CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; USE mattermost; alter table Audits CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Bots CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table ChannelMemberHistory CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table ChannelMembers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Channels CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table ClusterDiscovery CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table CommandWebhooks CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Commands CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Compliances CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Emoji CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table FileInfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table GroupChannels CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table GroupMembers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table GroupTeams CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table IncomingWebhooks CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Jobs CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Licenses CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table LinkMetadata CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table OAuthAccessData CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table OAuthApps CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table OAuthAuthData CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table OutgoingWebhooks CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table PluginKeyValueStore CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Preferences CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table ProductNoticeViewState CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table PublicChannels CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Reactions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Roles CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Schemes CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Sessions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table SidebarCategories CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table SidebarChannels CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Status CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Systems CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table TeamMembers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Teams CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table TermsOfService CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table ThreadMemberships CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Threads CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Tokens CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table UploadSessions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table UserAccessTokens CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table UserGroups CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table UserTermsOfService CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; alter table Users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;