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.
| App | App-id | Image | Ingeschakeld na installatie |
|---|---|---|---|
| Agents (AI) | mattermost-ai | beide | ja |
| Gesprekken | com.mattermost.calls | beide | ja |
| Kanban | focalboard | beide | ja |
| Playbooks | playbooks | beide | ja |
| GitHub | github | beide | nee |
| GitLab | com.github.manland.mattermost-plugin-gitlab | beide | nee |
| Jira | jira | beide | nee |
| Metrieken | com.mattermost.mattermost-plugin-metrics | beide | nee |
| Spraakkanaal | com.antimatterchat.voice-channels | antimatter-next | ja |
| Peilingen | com.antimatterchat.polls | antimatter-next | ja |
| Notities | com.antimatterchat.notes | antimatter-next | ja |
| Whiteboard | com.antimatterchat.whiteboard | antimatter-next | ja |
com.antimatterchat.mail | antimatter-next | ja | |
| Agenda | com.antimatterchat.calendar | antimatter-next | ja |
| GIF's | com.antimatterchat.gifs | antimatter-next | ja |
| Memes | memes | antimatter-next | nee |
| Te doen | com.mattermost.plugin-todo | antimatter-next | nee |
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:
| Instelling | Variabele (standaard) | Standaardwaarde | Wat het doet |
|---|---|---|---|
| URL van de GIF-service | AM_GIFS_SERVICE_URL | leeg | De API-basis van de service, bijvoorbeeld http://gifs:8080/v2. GIFs zijn uit als dit leeg is. |
| API-sleutel | AM_GIFS_API_KEY | leeg | Een van de AM_GIFS_API_KEYS van de service. |
| Upload-sleutel | AM_GIFS_UPLOAD_KEY | leeg | Een 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 toevoegen | Systeembeheerders | Systeembeheerders 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 inschakelen | aan | Toont de tab voor stickers. | |
| Inhoudsfilter | medium | high, medium, low of off. | |
| Media via Antimatter serveren | aan | Browsers laden GIFs van Antimatter, die ze ophaalt bij de service. Houd dit aan als de service alleen op uw interne netwerk staat. | |
| Media-URL | de /media/ van de service | Waar de media staan, als ze direct worden geserveerd. | |
| Cache-grootte (MB) | 64 MB | Geheugencache 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:
| Variabele | Standaardwaarde | Wat het doet |
|---|---|---|
AM_GIFS_API_KEYS | geen | Komma-gescheiden API-sleutels. Zonder sleutel is de API open voor iedereen die er toegang toe heeft. Meerdere sleutels maken rotatie mogelijk. |
AM_GIFS_UPLOAD_KEYS | geen | Sleutels die zijn toegestaan om te uploaden en om het geüploade te verwijderen. Zonder een sleutel zijn uploads niet mogelijk. |
AM_GIFS_RATE_LIMIT | 20 | Aanvragen 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 | :8080 | Luisteradres. |
AM_GIFS_PUBLIC_URL | uit aanvragen | Externe URL, als u de service beschikbaar stelt. |
AM_GIFS_TRUST_PROXY | false | Vergevouw X-Forwarded-*-headers, alleen achter een proxy. |
AM_GIFS_UPLOAD_MAX_MB | 16 | Grootst 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:
| App | Instelling | Standaardwaarde | Wat het doet |
|---|---|---|---|
| E-mail, Agenda | E-mailservers op privé-netwerken toestaan, Agendaservers op privé-netwerken toestaan (AllowPrivateNetworks) | Uit | Uit, 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, Agenda | Niet-versleutelde verbindingen toestaan (AllowInsecureConnections) | Uit | Uit, verbindingen moeten TLS gebruiken (E-mail: TLS of STARTTLS; Agenda: HTTPS). |
Interval voor controle van ongelezen berichten (minuten) (UnreadCheckMinutes) | 2 minuten | Hoe vaak ongelezen tellen worden gecontroleerd als de e-mailserver ze niet kan doorsturen. | |
Grootste berichtgrootte (MB) (MaxMessageSizeMB) | 25 MB | Groottelimiet van verzonden en gelezen berichten. | |
| Agenda | Herinneringen verzenden (EnableReminders) | aan | De 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,emailenprofile. De tenant is standaardcommon. - 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.
| App | OAuth-omleidings-URL | Webhook-URL |
|---|---|---|
| GitHub | https://chat.example.com/plugins/github/oauth/complete | https://chat.example.com/plugins/github/webhook |
| GitLab | https://chat.example.com/plugins/com.github.manland.mattermost-plugin-gitlab/oauth/complete | https://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. | |
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: stelAM_PLUGINSETTINGS_ENABLEUPLOADS=truein en gebruik daarna Plugin uploaden in Pluginbeheer, ofamctl --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.
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.