Inbegrepen apps

De Docker-images van Antimatter bevatten een set apps (plugins in de Systeemconsole). Deze pagina geeft ze weer, vermeldt welke na installatie zijn ingeschakeld en beschrijft de instellingen die een beheerder voor elke app nodig heeft.

De inbegrepen apps

Apps worden in de Systeemconsole vermeld als Plugins. Ze zitten in het image (in /antimatter/prepackaged_plugins), zijn ondertekend met de Antimatter-appondertekeningsleutel en kunnen dus zonder internetverbinding worden geïnstalleerd.

Het releasearchief en de .deb- en .rpm-pakketten bevatten minder apps: zie Apps in de pakketten en het archief.

AppApp-idImageIngeschakeld na installatie
Agents (AI)mattermost-aibeideja
Gesprekkencom.mattermost.callsbeideja
Kanbanfocalboardbeideja
Playbooksplaybooksbeideja
GitHubgithubbeidenee
GitLabcom.github.manland.mattermost-plugin-gitlabbeidenee
Jirajirabeidenee
Metriekencom.mattermost.mattermost-plugin-metricsbeidenee
Spraakkanaalcom.antimatterchat.voice-channelsantimatter-nextja
Peilingencom.antimatterchat.pollsantimatter-nextja
Notitiescom.antimatterchat.notesantimatter-nextja
Whiteboardcom.antimatterchat.whiteboardantimatter-nextja
E-mailcom.antimatterchat.mailantimatter-nextja
Agendacom.antimatterchat.calendarantimatter-nextja
GIF'scom.antimatterchat.gifsantimatter-nextja
Memesmemesantimatter-nextnee
Te doencom.mattermost.plugin-todoantimatter-nextnee

Apps die standaard zijn ingeschakeld, worden bij elke start geïnstalleerd als ze dat nog niet zijn, of bijgewerkt als het image een nieuwere versie bevat. Als u een app uitschakelt, blijft deze uitgeschakeld: de standaardinstelling geldt alleen voor apps die nog niet in de configuratie zijn vermeld. Apps die hun Mattermost-id behouden (Agents, Gesprekken, Kanban, Playbooks en de integraties) zijn eigen builds van Antimatter.

Apps inschakelen, uitschakelen en configureren

Ga naar Systeem console › Plugins › Plugin Beheer. Onder Geïnstalleerde Plugins heeft elke app Ingeschakeld of Uitgeschakeld, Instellingen en Verwijderen, en toont het de status (Running, Not running, Failed to start…). Elke app met instellingen heeft ook een eigen pagina onder Systeem console › Plugins.

De ingebouwde apps die standaard uitgeschakeld zijn, worden geïnstalleerd vanuit de eigen kopie van de image: klik op je foto bovenaan de apprail en kies App marktplaats (in de klassieke interface staat dit in het productmenu), zoek de app op en klik op Installeren, en schakel deze vervolgens in onder Plugin Management. Vanuit de opdrachtregel:

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

Andere opdrachten: amctl plugin list, amctl plugin disable <id>, amctl plugin delete <id>.

Apps inschakelen via de configuratie

Welke apps ingeschakeld zijn, wordt bepaald door de instelling PluginSettings.PluginStates, een map van app-ids. U kunt er items aan toevoegen met amctl; met Automatische Voorverpakte Plugins Inschakelen ingeschakeld (de standaard), wordt een ingeschakelde meegeleverde app geïnstalleerd bij de volgende start:

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

Zo installeert u ook Te doen, die niet wordt aangeboden in het Marketplace-dialoogvenster. De variabele AM_PLUGINSETTINGS_PLUGINSTATES werkt ook, maar deze vervangt de hele map: vermeld elke app die u wilt inschakelen.

Appinstellingen

De app-instellingen worden opgeslagen onder PluginSettings.Plugins.<app id>, met sleutels in kleine letters. Wijzig ze op de Systeemconsole-pagina van de app of met amctl config patch, zoals beschreven in Configuratie. AM_PLUGINSETTINGS_PLUGINS vervangt de instellingen van alle apps tegelijk en vergrendelt ze, dus vermijd het.

GIF's

De GIF's-app voegt een tab voor GIF's en stickers toe aan de emoji-kiezer, ondersteund door de GIF-service van Antimatter (gifs-server), die de Tenor-API gebruikt. De compose-bestand van de site start de service en configureert de app via variabelen. De instellingen, onder Systeem console › Plugins › GIF's:

InstellingVariabele (standaard)StandaardwaardeWat het doet
URL van de GIF-serviceAM_GIFS_SERVICE_URLleegDe API-basis van de service, bijvoorbeeld http://gifs:8080/v2. GIFs zijn uit als dit leeg is.
API-sleutelAM_GIFS_API_KEYleegEen van de AM_GIFS_API_KEYS van de service.
Upload-sleutelAM_GIFS_UPLOAD_KEYleegEen van de AM_GIFS_UPLOAD_KEYS van de service. Hiermee kunnen gebruikers GIF’s en stickers toevoegen via de picker en de op deze manier toegevoegde items verwijderen. Als dit leeg is, zijn uploads uitgeschakeld.
Wie kan GIFs en stickers toevoegenSysteembeheerdersSysteembeheerders of Iedereen. Gasten kunnen dit nooit, net als bij aangepaste emoji’s. Wat gebruikers toevoegen, is voor iedereen beschikbaar; de persoon die het heeft toegevoegd en systeembeheerders kunnen het verwijderen.
Stickers inschakelenaanToont de tab voor stickers.
Inhoudsfiltermediumhigh, medium, low of off.
Media via Antimatter serverenaanBrowsers laden GIFs van Antimatter, die ze ophaalt bij de service. Houd dit aan als de service alleen op uw interne netwerk staat.
Media-URLde /media/ van de serviceWaar de media staan, als ze direct worden geserveerd.
Cache-grootte (MB)64 MBGeheugencache van de app.

Voor deze app zijn de variabelen alleen terugvalwaarden: een waarde die in de Systeemconsole is ingesteld, heeft voorrang. Als de GIF-kiezer leeg blijft, controleer dan de service-URL en de API-sleutel op die pagina.

Zodra de GIF's-app is geconfigureerd, vervangt de tab de ingebouwde Giphy-kiezer (Systeem console › Integraties › GIF › GIF-kiezer inschakelen, ServiceSettings.EnableGifPicker).

De GIF-service

De service bewaart alles in de datamap (/data, het gifs-volume): een zoekindex en de media. De belangrijkste variabelen:

VariabeleStandaardwaardeWat het doet
AM_GIFS_API_KEYSgeenKomma-gescheiden API-sleutels. Zonder sleutel is de API open voor iedereen die er toegang toe heeft. Meerdere sleutels maken rotatie mogelijk.
AM_GIFS_UPLOAD_KEYSgeenSleutels die zijn toegestaan om te uploaden en om het geüploade te verwijderen. Zonder een sleutel zijn uploads niet mogelijk.
AM_GIFS_RATE_LIMIT20Aanvragen per seconde per client (API-sleutel en adres); 0 schakelt het uit. Het compose-bestand stelt 0 in, omdat alle aanvragen van Antimatter dezelfde sleutel en hetzelfde adres delen.
AM_GIFS_LISTEN:8080Luisteradres.
AM_GIFS_PUBLIC_URLuit aanvragenExterne URL, als u de service beschikbaar stelt.
AM_GIFS_TRUST_PROXYfalseVergevouw X-Forwarded-*-headers, alleen achter een proxy.
AM_GIFS_UPLOAD_MAX_MB16Grootst geüploade bestand.

Om uw eigen GIF's in bulk toe te voegen, importeert u ze met een manifest, vanuit een map die is gemount in een eenmalige container:

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

Om de beginstickers opnieuw te importeren na een upgrade: docker compose run --rm gifs stickers. Het manifestformaat en de andere opdrachten staan in de gifs-server README.

E-mail en Agenda

E-mail en Agenda koppelen elk persoon aan hun eigen mailbox (IMAP en SMTP) en hun eigen agenda (CalDAV). Personen geven hun server en wachtwoord in de app in; wachtwoorden worden versleuteld opgeslagen. U configureert geen e-mail- of agendaservers voor hen, maar u bepaalt waartoe ze zich kunnen verbinden:

AppInstellingStandaardwaardeWat het doet
E-mail, AgendaE-mailservers op privé-netwerken toestaan, Agendaservers op privé-netwerken toestaan (AllowPrivateNetworks)UitUit, de server weigert verbindingen met loopback-, privé- en link-local-adressen, zodat de apps niet kunnen worden gebruikt om uw interne netwerk te bereiken. Schakel dit in als uw e-mail- of agendaserver op een privé-adres staat.
E-mail, AgendaNiet-versleutelde verbindingen toestaan (AllowInsecureConnections)UitUit, verbindingen moeten TLS gebruiken (E-mail: TLS of STARTTLS; Agenda: HTTPS).
E-mailInterval voor controle van ongelezen berichten (minuten) (UnreadCheckMinutes)2 minutenHoe vaak ongelezen tellen worden gecontroleerd als de e-mailserver ze niet kan doorsturen.
E-mailGrootste berichtgrootte (MB) (MaxMessageSizeMB)25 MBGroottelimiet van verzonden en gelezen berichten.
AgendaHerinneringen verzenden (EnableReminders)aanDe Agenda-bot stuurt een privébericht vóór evenementen (10 minuten vóór, voor evenementen zonder een eigen alarm).

Om personen in staat te stellen zich aan te melden bij Gmail- of Microsoft 365-mailboxes met hun account in plaats van een wachtwoord, maakt u een OAuth-client aan en vult u de Google- of Microsoft-velden van de E-mail-app in:

  • Google: een Web OAuth-client met de Gmail API en de scope https://mail.google.com/.
  • Microsoft: een Entra ID-app met de gedelegeerde machtigingen IMAP.AccessAsUser.All, SMTP.Send, offline_access, openid, email en profile. De tenant is standaard common.
  • In beide gevallen is de redirect-URI https://chat.example.com/plugins/com.antimatterchat.mail/oauth/callback (uw site-URL).

Kanban, Notities, Whiteboard, Peilingen en Playbooks

  • Kanban (focalboard) opent in het zijpaneel naast het gesprek, net als Playbooks. Oude koppelingen naar /kanban/…- en /boards/…-pagina’s openen hetzelfde bord of dezelfde kaart in een community. De enige instelling, Openbaar gedeelde borden inschakelen (EnablePublicSharedBoards, uit), stelt bordbewerkers in staat een bord te delen met iedereen die de koppeling heeft, zonder in te loggen.
  • Notities en Peilingen hebben geen instellingen.
  • Whiteboard: systeembeheerders kunnen in de instellingenpagina van de server vormbibliotheken (Excalidraw .excalidrawlib-bestanden, maximaal 5 MB per bestand) uploaden voor de hele server. Gemeenschapsbeheerders beheren de bibliotheken van hun eigen gemeenschap.
  • Playbooks opent in het zijpaneel. Oude koppelingen naar /playbooks/…-pagina’s openen dezelfde run of playbook in een community. Het heeft een aantal instellingen, grotendeels experimentele functies; de standaardwaarden zijn geschikt voor de meeste servers.
  • Memes: Wie kan memetemplates toevoegen: Iedereen (standaard), Systeembeheerders of Niemand (aangepaste templates uitgeschakeld), wat het toevoegen van nieuwe templates stopt, terwijl de al toegevoegde templates bruikbaar blijven. Gasten voegen nooit templates toe. De persoon die een template heeft toegevoegd en systeembeheerders kunnen deze verwijderen.
  • Te doen heeft geen serverinstellingen.

GitHub, GitLab en Jira

Deze apps koppelen Antimatter aan uw codehosting en issue-tracker. Elke app vereist een OAuth-toepassing aan de andere kant en een webhook die terugwijst naar Antimatter. Schakel de app in en voer vervolgens de opstartopdracht uit in een willekeurig kanaal; deze leidt u stap voor stap: /github setup, /gitlab setup of /jira setup.

AppOAuth-omleidings-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> of /jira instance install cloud-oauth <url>; /jira webhook toont de webhook-URL's.
Laat Gebruik vooraf geregistreerde OAuth-toepassing uit in de GitHub- en GitLab-apps: het vertrouwt op een Mattermost-service die Antimatter niet heeft, en de app weigert te starten als deze is ingeschakeld. Registreer uw eigen OAuth-toepassing.

De GitHub- en GitLab-apps genereren hun webhook-secret en versleutelingscode bij het eerste opslaan. De GitHub-app kan beperkt worden tot organisaties (GithubOrg) en de GitLab-app tot een groep (GitlabGroup); voor GitHub Enterprise of een zelfgehoste GitLab, stelt u de basis-URL in.

Metrieken

De Metrics-app verzamelt de prestatie-metrics van de server in een kleine tijdreeksdatabase binnen Antimatter, zodat u ze kunt downloaden of in een supportpakket kunt opnemen zonder Prometheus te draaien. Bij het starten schakelt het de metrics-eindpunt van de server in (MetricsSettings.Enable). Zie Bewerkingen.

Andere apps installeren

Antimatter draait Mattermost-apps (plugins). Er zijn drie manieren om er een toe te voegen:

  • Vanuit een externe marktplaats. Marktplaats op afstand inschakelen (PluginSettings.EnableRemoteMarketplace) is standaard uitgeschakeld en Marktplaats URL (PluginSettings.MarketplaceURL) is leeg: Antimatter gebruikt de Mattermost-marktplaats niet en negeert het adres als een configuratie van Mattermost het nog bevat. Om de apps van een marktplaatsserver te vermelden die u vertrouwt, schakelt u de instelling in en stelt u de URL in. De builds van apps die Antimatter levert (Calls, Playbooks, Kanban en de rest) worden verborgen, zodat ze de eigen apps van Antimatter niet kunnen vervangen: Toestaan dat de Marketplace eigen builds van Antimatter-plug-ins aanbiedt (PluginSettings.AllowMarketplaceToReplaceAntimatterPlugins) is standaard uitgeschakeld.
  • Door een bundle te uploaden (.tar.gz). Uploads zijn standaard uitgeschakeld en hebben geen schakelaar in de Systeemconsole: stel AM_PLUGINSETTINGS_ENABLEUPLOADS=true in en gebruik daarna Plugin uploaden in Pluginbeheer, of amctl --local plugin add app.tar.gz.
  • Van een URL: amctl plugin install-url <url>, ook als uploads zijn ingeschakeld.

Antimatter controleert app-handtekeningen tegen de sleutels die het vertrouwt: de Antimatter-sleutel, de sleutel waarmee Mattermost, Inc. zijn gepubliceerde apps ondertekent (zodat een Mattermost-app die u zelf downloadt geïnstalleerd kan worden) en elke sleutel die u toevoegt in PluginSettings.SignaturePublicKeyFiles. Met Plugin-handtekening vereist (PluginSettings.RequirePluginSignature, standaard uitgeschakeld) ingeschakeld, worden apps zonder handtekening geweigerd en is uploaden uitgeschakeld.

Een app draait op de server met volledige toegang tot de gegevens. Installeer alleen apps die je vertrouwt.

Sommige apps die voor de betaalde edities van Mattermost zijn gemaakt, controleren zelf op een Mattermost-licentie en weigeren te draaien; Antimatter doet er niet alsof het er een voor hen heeft.