Mitgelieferte Apps

Die Docker-Images von Antimatter enthalten eine Reihe von Apps (Plugins in der Systemkonsole). Diese Seite listet sie auf, gibt an, welche nach der Installation aktiviert sind, und behandelt die Einstellungen, die jede App von einem Administrator benötigt.

Die mitgelieferten Apps

Apps werden in der Systemkonsole als Plugins aufgelistet. Sie befinden sich im Image (in /antimatter/prepackaged_plugins), sind mit dem Antimatter-App-Signierungsschlüssel signiert und werden daher ohne Internetverbindung installiert.

Das Release-Archiv sowie die .deb- und .rpm-Pakete enthalten weniger Apps: siehe Apps in den Paketen und im Archiv.

AppApp-IDImageNach der Installation aktiviert
KI-Chatmattermost-aibeideja
Anrufecom.mattermost.callsbeideja
GitHubgithubbeidenein
GitLabcom.github.manland.mattermost-plugin-gitlabbeidenein
Jirajirabeidenein
Metrikencom.mattermost.mattermost-plugin-metricsbeidenein
Sprachkanälecom.antimatterchat.voice-channelsantimatter-nextja
Umfragencom.antimatterchat.pollsantimatter-nextja
Notizencom.antimatterchat.notesantimatter-nextja
Whiteboardcom.antimatterchat.whiteboardantimatter-nextja
E-Mailcom.antimatterchat.mailantimatter-nextja
Kalendercom.antimatterchat.calendarantimatter-nextja
GIFscom.antimatterchat.gifsantimatter-nextja
Memesmemesantimatter-nextnein
Zu erledigencom.mattermost.plugin-todoantimatter-nextnein

Apps, die standardmäßig aktiviert sind, werden bei jedem Start installiert, wenn sie noch nicht vorhanden sind, oder aktualisiert, wenn das Image eine neuere Version enthält. Wenn Sie eine App deaktivieren, bleibt sie deaktiviert: Die Standardeinstellung gilt nur für Apps, die in der Konfiguration noch nicht erwähnt werden. Apps, die ihre Mattermost-ID beibehalten (KI-Chat, Anrufe und Integrationen), sind Antimatters eigene Builds.

Kanban (focalboard) und Playbooks (playbooks) sind nicht mehr im Server oder in einem der Images enthalten: Installieren Sie die gewünschte App aus ihrem eigenen GitHub-Release (siehe Apps in den Paketen und im Archiv), wie jede andere App, die nicht standardmäßig gebündelt ist. Ein Server, auf dem eine dieser Apps bereits installiert ist, behält sie auch nach einem Upgrade. Beide bleiben Antimatters eigene Builds: Die Vanilla-Builds aus dem Marketplace ersetzen Antimatters Builds niemals.

Apps aktivieren, deaktivieren und konfigurieren

Gehen Sie zu Systemkonsole › Plugins › Plugin-Verwaltung. Unter Installierte Plugins hat jede App die Optionen Aktivieren oder Deaktivieren, Einstellungen und Entfernen und zeigt ihren Status an (Läuft, Läuft nicht, Start fehlgeschlagen …). Jede App mit Einstellungen hat auch eine eigene Seite unter Systemkonsole › Plugins.

Die mitgelieferten Apps, die standardmäßig deaktiviert sind, werden aus der eigenen Kopie des Images installiert: Klicken Sie oben in der App-Leiste auf Ihr Profilbild und wählen Sie App-Marktplatz (in der klassischen Oberfläche befindet er sich im Produktmenü), suchen Sie die App und klicken Sie auf Installieren, aktivieren Sie sie anschließend im Plugin-Management. Von der Kommandozeile aus:

docker compose exec antimatter amctl --local plugin marketplace install github
docker compose exec antimatter amctl --local plugin enable github

Weitere Befehle: amctl plugin list, amctl plugin disable <id>, amctl plugin delete <id>.

Apps über die Konfiguration aktivieren

Welche Apps aktiv sind, bestimmt die Einstellung PluginSettings.PluginStates, eine Zuordnung von App-IDs. Sie können Einträge mit amctl zusammenführen; ist Automatische vorpaketierte Plugins aktivieren aktiviert (Standard), wird eine aktivierte mitgelieferte App beim nächsten Start installiert:

docker compose exec -T antimatter amctl --local config patch /dev/stdin <<'EOF'
{"PluginSettings": {"PluginStates": {"com.mattermost.plugin-todo": {"Enable": true}}}}
EOF
docker compose restart antimatter

So wird auch Todo installiert, das im Marketplace-Dialog nicht angeboten wird. Die Variable AM_PLUGINSETTINGS_PLUGINSTATES funktioniert ebenfalls, ersetzt aber die gesamte Map: Listen Sie alle Apps auf, die Sie aktivieren möchten.

App-Einstellungen

Die App-Einstellungen werden unter PluginSettings.Plugins.<app id> gespeichert, wobei die Schlüssel in Kleinbuchstaben angegeben werden. Sie können sie auf der Systemkonsole-Seite der App ändern oder mit amctl config patch, wie in Konfiguration gezeigt. AM_PLUGINSETTINGS_PLUGINS ersetzt die Einstellungen aller Apps auf einmal und sperrt sie alle, daher sollten Sie es vermeiden.

GIFs

Die GIFs-App fügt dem Emoji-Auswahlmenü einen Tab für GIFs und Sticker hinzu, der vom GIF-Dienst von Antimatter (gifs-server) unterstützt wird, der die Tenor-API verwendet. Die Compose-Datei der Site führt den Dienst aus und konfiguriert die App über Variablen. Ihre Einstellungen, in Systemkonsole › Plugins › GIFs:

EinstellungVariable (Fallback)StandardFunktion
URL des GIF-DienstesAM_GIFS_SERVICE_URLleerDie API-Basis des Dienstes, z. B. http://gifs:8080/v2. Solange sie leer ist, sind GIFs deaktiviert.
API-SchlüsselAM_GIFS_API_KEYleerEiner der AM_GIFS_API_KEYS des Dienstes.
HochladeschlüsselAM_GIFS_UPLOAD_KEYleerEiner der AM_GIFS_UPLOAD_KEYS des Dienstes. Ermöglicht es Nutzern, GIFs und Sticker über den Auswahldialog hinzuzufügen und auf diese Weise hinzugefügte zu löschen. Leer lässt Uploads deaktiviert.
Wer kann GIFs und Sticker hinzufügenSystemadministratorenSystemadministratoren oder Alle. Gäste können dies nie, wie bei benutzerdefinierten Emojis. Was jemand hinzufügt, ist für alle verfügbar; die Person, die es hinzugefügt hat, und Systemadministratoren können es löschen.
Sticker aktivierenanZeigt den Sticker-Tab an.
Inhaltsfiltermittelhoch, mittel, niedrig oder aus.
Medien über Antimatter bereitstellenanBrowser laden GIFs von Antimatter, die sie vom Dienst abruft. Aktivieren Sie dies, wenn der Dienst nur in Ihrem internen Netzwerk verfügbar ist.
Medien-URLdas /media/ des DienstesWo sich die Medien befinden, wenn sie direkt bereitgestellt werden.
Cachegröße (MB)64 MBSpeicher-Cache der App.

Für diese App sind die Variablen nur Fallbacks: Ein in der Systemkonsole gesetzter Wert hat Vorrang vor ihnen. Wenn der GIF-Auswahlmenü leer bleibt, prüfen Sie die Dienst-URL und den API-Schlüssel auf dieser Seite.

Während die GIF-App eingerichtet ist, ersetzt ihr Tab den integrierten Giphy-Auswahlbereich (Systemkonsole › Integrationen › GIF › GIF-Auswahl aktivieren, ServiceSettings.EnableGifPicker).

Der GIF-Dienst

Der Dienst speichert alles in seinem Datenverzeichnis (/data, das gifs-Volume): einen Suchindex und die Medien. Seine wichtigsten Variablen:

VariableStandardFunktion
AM_GIFS_API_KEYSkeineKommagetrennte API-Schlüssel. Ohne Schlüssel ist die API für jeden offen, der sie erreichen kann. Mehrere Schlüssel ermöglichen deren Rotation.
AM_GIFS_UPLOAD_KEYSkeineSchlüssel, die zum Hochladen und zum Löschen des Hochgeladenen erlaubt sind. Ohne einen davon sind keine Uploads möglich.
AM_GIFS_RATE_LIMIT20Anfragen pro Sekunde pro Client (API-Schlüssel und Adresse); 0 deaktiviert es. Die Compose-Datei setzt 0, da alle Anfragen von Antimatter einen gemeinsamen Schlüssel und eine gemeinsame Adresse teilen.
AM_GIFS_LISTEN:8080Hörsadresse.
AM_GIFS_PUBLIC_URLaus AnfragenExterne URL, falls Sie den Dienst öffentlich bereitstellen.
AM_GIFS_TRUST_PROXYfalseKopfzeilen X-Forwarded-* vertrauen, nur hinter einem Proxy.
AM_GIFS_UPLOAD_MAX_MB16Größte hochgeladene Datei.

Um eigene GIFs in großen Mengen hinzuzufügen, importieren Sie sie mit einem Manifest aus einem Verzeichnis, das in einen Einmalcontainer eingebunden wird:

docker compose run --rm -v "$PWD/my-gifs:/import:ro" gifs import -manifest /import/manifest.json

Um die Starter-Sticker nach einem Upgrade erneut zu importieren: docker compose run --rm gifs stickers. Das Manifest-Format und die anderen Befehle finden Sie im gifs-server-README.

E-Mail und Kalender

E-Mail und Kalender verbinden jede Person mit ihrem eigenen Postfach (IMAP und SMTP) und ihrem eigenen Kalender (CalDAV). Die Personen geben ihren Server und ihr Passwort in der App ein; Passwörter werden verschlüsselt gespeichert. Sie konfigurieren keine E-Mail- oder Kalenderserver für sie, sondern legen fest, womit sie sich verbinden dürfen:

AppEinstellungStandardFunktion
E-Mail, KalenderE-Mail-Server in privaten Netzwerken erlauben, Kalenderserver in privaten Netzwerken erlauben (AllowPrivateNetworks)ausAus, der Server verweigert die Verbindung zu Loopback-, privaten und Link-Local-Adressen, sodass die Apps nicht genutzt werden können, um Ihr internes Netzwerk zu erreichen. Schalten Sie es ein, wenn Ihr E-Mail- oder Kalenderserver an einer privaten Adresse liegt.
E-Mail, KalenderUnverschlüsselte Verbindungen erlauben (AllowInsecureConnections)ausAus, Verbindungen müssen TLS verwenden (E-Mail: TLS oder STARTTLS; Kalender: HTTPS).
E-MailPrüfintervall für ungelesene Nachrichten (Minuten) (UnreadCheckMinutes)2 MinutenWie oft die Anzahl ungelesener Nachrichten geprüft wird, wenn der E-Mail-Server sie nicht aktiv übermitteln kann.
E-MailGrößte Nachrichtengröße (MB) (MaxMessageSizeMB)25 MBGrößenlimit für gesendete und gelesene Nachrichten.
KalenderErinnerungen senden (EnableReminders)anDer Kalender-Bot sendet vor Terminen eine Direktnachricht (10 Minuten vorher, für Termine ohne eigene Erinnerung).

Um Personen die Anmeldung in Gmail- oder Microsoft 365-Postfächern mit ihrem Konto statt mit einem Passwort zu ermöglichen, erstellen Sie einen OAuth-Client und füllen Sie die Google- oder Microsoft-Felder der E-Mail-App aus:

  • Google: ein Web-OAuth-Client mit der Gmail-API und dem Bereich https://mail.google.com/.
  • Microsoft: eine Entra-ID-App mit den delegierten Berechtigungen IMAP.AccessAsUser.All, SMTP.Send, offline_access, openid, email und profile. Der Tenant ist standardmäßig common.
  • In beiden Fällen ist die Weiterleitungs-URI https://chat.example.com/plugins/com.antimatterchat.mail/oauth/callback (Ihre Site-URL).

Kanban, Notizen, Whiteboard, Umfragen und Playbooks

  • Kanban (focalboard) öffnet sich im Seitenpanel neben dem Gespräch, wie auch Playbooks. Alte Links zu /kanban/…- und /boards/…-Seiten öffnen dasselbe Board oder dieselbe Karte in einer Community. Die einzige Einstellung, Öffentlich geteilte Boards aktivieren (EnablePublicSharedBoards, aus), ermöglicht Board-Editoren, ein Board mit allen zu teilen, die den Link haben, ohne sich anmelden zu müssen.
  • Notizen und Umfragen haben keine Einstellungen.
  • Whiteboard: Systemadministratoren können in der Einstellungsseite der gesamten Server Shape-Bibliotheken (Excalidraw-.excalidrawlib-Dateien, jeweils bis zu 5 MB) hochladen. Community-Administratoren verwalten die Bibliotheken ihrer eigenen Community.
  • Playbooks öffnet sich im Seitenpanel. Alte Links zu /playbooks/…-Seiten öffnen denselben Durchlauf oder dasselbe Playbook in einer Community. Es hat einige Einstellungen, meist experimentelle Funktionen; die Standardwerte eignen sich für die meisten Server.
  • Memes: Wer kann Meme-Vorlagen hinzufügen: Alle (Standard), Systemadministratoren oder Niemand (benutzerdefinierte Vorlagen aus), was das Hinzufügen neuer Vorlagen verhindert, während die bereits hinzugefügten weiterhin nutzbar bleiben. Gäste fügen nie Vorlagen hinzu. Die Person, die eine Vorlage hinzugefügt hat, und Systemadministratoren können sie löschen.
  • Zu erledigen hat keine Servereinstellungen.

GitHub, GitLab und Jira

Diese Apps verknüpfen Antimatter mit Ihrem Code-Hosting-Dienst und Ihrem Issue-Tracker. Jede benötigt eine OAuth-Anwendung auf der Gegenseite und einen Webhook, der auf Antimatter zurückzeigt. Aktivieren Sie die App und führen Sie dann deren Setup-Befehl in einem beliebigen Kanal aus, der Sie Schritt für Schritt anleitet: /github setup, /gitlab setup oder /jira setup.

AppOAuth-Redirect-URLWebhook-URL
GitHubhttps://chat.example.com/plugins/github/oauth/completehttps://chat.example.com/plugins/github/webhook
GitLabhttps://chat.example.com/plugins/com.github.manland.mattermost-plugin-gitlab/oauth/completehttps://chat.example.com/plugins/com.github.manland.mattermost-plugin-gitlab/webhook
Jira/jira instance install server <url> oder /jira instance install cloud-oauth <url>; /jira webhook gibt die Webhook-URLs aus.
Lassen Sie Vorregistrierte OAuth-Anwendung verwenden in den GitHub- und GitLab-Apps deaktiviert: Sie stützt sich auf einen Mattermost-Dienst, den Antimatter nicht hat, und die App verweigert den Start, wenn diese Option aktiviert ist. Registrieren Sie Ihre eigene OAuth-Anwendung.

Die GitHub- und GitLab-Apps generieren ihren Webhook-Schlüssel und ihren Verschlüsselungsschlüssel beim ersten Speichern. Die GitHub-App kann auf Organisationen (GithubOrg) und die GitLab-App auf eine Gruppe (GitlabGroup) beschränkt werden; für GitHub Enterprise oder einen selbst gehosteten GitLab setzen Sie dessen Basis-URL.

Metriken

Die Metrik-App sammelt die Leistungsindikatoren des Servers in einer kleinen Zeitreihendatenbank innerhalb von Antimatter, sodass Sie diese herunterladen oder in ein Support-Paket einfügen können, ohne Prometheus auszuführen. Beim Start aktiviert sie den Metrik-Endpunkt des Servers (MetricsSettings.Enable). Siehe Betrieb.

Andere Apps installieren

Antimatter führt Mattermost-Apps (Plugins) aus. Drei Möglichkeiten, eine hinzuzufügen:

  • Von einem Remote-Marktplatz. Remote-Marktplatz aktivieren (PluginSettings.EnableRemoteMarketplace) ist standardmäßig deaktiviert und Marktplatz-URL (PluginSettings.MarketplaceURL) leer: Antimatter verwendet den Marktplatz von Mattermost nicht und ignoriert dessen Adresse, falls eine Konfiguration von Mattermost sie noch enthält. Um die Apps eines Marktplatzservers aufzulisten, dem Sie vertrauen, aktivieren Sie die Einstellung und setzen Sie dessen URL. Die Builds von Apps, die Antimatter mitliefert (Calls, Playbooks, Kanban und die anderen), werden ausgeblendet, damit sie die von Antimatter nicht ersetzen können: Marketplace-Builds von Antimatter-Plugins erlauben (PluginSettings.AllowMarketplaceToReplaceAntimatterPlugins) ist standardmäßig deaktiviert.
  • Durch Hochladen eines Bundles (.tar.gz). Uploads sind standardmäßig deaktiviert und haben keinen Schalter in der Systemkonsole: Setzen Sie AM_PLUGINSETTINGS_ENABLEUPLOADS=true und verwenden Sie dann Lade Plugin hoch im Plugin-Management oder amctl --local plugin add app.tar.gz.
  • Aus einer URL: amctl plugin install-url <url>, ebenfalls mit aktivierten Uploads.

Antimatter prüft App-Signaturen anhand der Schlüssel, denen es vertraut: dem Antimatter-Schlüssel, dem Schlüssel, mit dem Mattermost, Inc. seine veröffentlichten Apps signiert (damit eine Mattermost-App, die Sie selbst herunterladen, installiert wird), und jedem Schlüssel, den Sie in PluginSettings.SignaturePublicKeyFiles hinzufügen. Ist Plugin-Signatur erfordern (PluginSettings.RequirePluginSignature, standardmäßig deaktiviert) aktiviert, werden Apps ohne Signatur abgelehnt und Uploads deaktiviert.

Eine App läuft auf dem Server mit vollem Zugriff auf dessen Daten. Installieren Sie nur Apps, denen Sie vertrauen.

Einige Apps, die für die kostenpflichtigen Editionen von Mattermost entwickelt wurden, prüfen selbst nach einer Mattermost-Lizenz und verweigern die Ausführung; Antimatter tut so, als hätte es für sie keine.