内置应用

Antimatter 的 Docker 镜像包含一组应用(在系统控制台中称为插件)。本页列出了这些应用,说明了安装后哪些默认开启,并介绍了管理员需要为每个应用进行的设置。

内置应用

应用在系统控制台中列为 插件。它们包含在镜像中(位于 /antimatter/prepackaged_plugins),并使用 Antimatter 应用签名密钥进行签名,因此无需互联网连接即可安装。

发布存档以及 .deb 和 .rpm 软件包中包含的应用较少:请参阅软件包和存档中的应用。

应用应用 ID镜像安装后是否开启
智能体(AI)mattermost-ai两者是
通话com.mattermost.calls两者是
看板focalboard两者是
操作手册playbooks两者是
GitHubgithub两者否
GitLabcom.github.manland.mattermost-plugin-gitlab两者否
Jirajira两者否
指标com.mattermost.mattermost-plugin-metrics两者否
语音频道com.antimatterchat.voice-channelsantimatter-next是
投票com.antimatterchat.pollsantimatter-next是
笔记com.antimatterchat.notesantimatter-next是
白板com.antimatterchat.whiteboardantimatter-next是
邮件com.antimatterchat.mailantimatter-next是
日历com.antimatterchat.calendarantimatter-next是
GIFcom.antimatterchat.gifsantimatter-next是
表情包memesantimatter-next否
待办事项com.mattermost.plugin-todoantimatter-next否

默认开启的应用会在每次启动时安装(如果尚未安装),或在镜像包含更新版本时进行升级。如果您关闭某个应用,它将保持关闭状态:默认设置仅适用于配置中尚未提及的应用。保留其 Mattermost ID 的应用(智能体、通话、看板、操作手册和集成)是 Antimatter 的自有构建版本。

启用、禁用和配置应用

前往 系统控制台 › 插件 › 插件管理。在 已安装的插件 下,每个应用都有 启用 或 停用、设置 和 移除 选项,并显示其状态(运行中、未运行、启动失败等)。带有设置的应用在 系统控制台 › 插件 下也有自己的页面。

默认关闭的内置应用将从镜像自身的副本中安装:点击应用栏顶部的头像,选择应用市场(在经典界面中,它位于产品菜单中),找到该应用并点击安装,然后在插件管理中启用它。从命令行操作:

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

其他命令:amctl plugin list、amctl plugin disable <id>、amctl plugin delete <id>。

通过配置启用应用

哪些应用处于开启状态由设置 PluginSettings.PluginStates 决定,这是一个应用 ID 的映射。你可以使用 amctl 将条目合并到其中;如果开启了 开启自动预包装插件(默认开启),已启用的内置应用将在下次启动时安装:

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

这也是安装待办事项的方法,该应用未在应用市场对话框中提供。变量 AM_PLUGINSETTINGS_PLUGINSTATES 也有效,但它会替换整个映射:请列出您想要开启的所有应用。

应用设置

应用设置存储在 PluginSettings.Plugins.<app id> 下,键名使用小写。您可以在应用的系统控制台页面中修改这些设置,也可以使用 amctl config patch 命令,具体方法参见配置。AM_PLUGINSETTINGS_PLUGINS 会一次性替换并锁定所有应用的设置,因此请避免使用它。

GIF

GIF 图像应用会在表情选择器中添加一个 GIF 和贴纸选项卡,由 Antimatter 的 GIF 服务(gifs-server)提供支持,该服务使用 Tenor API。站点的 compose 文件会运行该服务并通过变量配置应用。其设置位于 系统控制台 › 插件 › GIF 图像:

设置项变量(回退值)默认值功能说明
GIF 服务 URLAM_GIFS_SERVICE_URL空服务的 API 基础地址,例如 http://gifs:8080/v2。如果该值为空,GIF 功能将处于关闭状态。
API 密钥AM_GIFS_API_KEY空服务 AM_GIFS_API_KEYS 中的其中一个。
上传密钥AM_GIFS_UPLOAD_KEY空服务的 AM_GIFS_UPLOAD_KEYS 之一。允许用户从选择器中添加 GIF 和贴纸,并删除通过此方式添加的内容。留空则关闭上传功能。
谁可以添加 GIF 和贴纸系统管理员系统管理员或所有人。访客永远无法操作,这与自定义表情符号相同。用户添加的内容对所有人可见;添加者本人和系统管理员可以删除它。
启用贴纸开启显示贴纸选项卡。
内容过滤器中等高、中、低或关闭。
通过 Antimatter 提供媒体开启浏览器从 Antimatter 加载 GIF,而 Antimatter 会从服务中获取它们。如果服务仅位于内部网络,请保持此选项开启。
媒体 URL服务的 /media/直接提供媒体时的媒体位置。
缓存大小(MB)64 MB应用的内存缓存。

对于此应用,变量仅作为回退值:在系统控制台中设置的值优先于变量。如果 GIF 选择器保持为空,请检查该页面上的服务 URL 和 API 密钥。

当 GIF 图像应用配置完成后,其选项卡将替换内置的 Giphy 选择器(系统控制台 › 集成 › GIF › 开启 GIF 选择器,ServiceSettings.EnableGifPicker)。

GIF 服务

服务将其所有数据(搜索索引和媒体)保存在其数据目录(/data,即 gifs 卷)中。其主要变量如下:

变量默认值功能说明
AM_GIFS_API_KEYS无逗号分隔的 API 密钥。如果没有密钥,API 将对任何能够访问它的人开放。 使用多个密钥可以实现密钥轮换。
AM_GIFS_UPLOAD_KEYS无允许上传以及删除已上传内容的密钥。没有密钥则无法上传。
AM_GIFS_RATE_LIMIT20每个客户端(API 密钥和地址)的每秒请求数;0 表示关闭。compose 文件设置为 0,因为 Antimatter 的所有请求共享同一个密钥和地址。
AM_GIFS_LISTEN:8080监听地址。
AM_GIFS_PUBLIC_URL来自请求如果您公开该服务,则为其外部 URL。
AM_GIFS_TRUST_PROXYfalse信任 X-Forwarded-* 请求头,仅在代理后方使用。
AM_GIFS_UPLOAD_MAX_MB16最大上传文件大小。

若要批量添加自定义 GIF,请使用清单文件从挂载到一次性容器中的目录导入:

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

升级后若要重新导入初始贴纸,请运行:docker compose run --rm gifs stickers。清单格式及其他命令请参阅 gifs-server README。

邮件与日历

邮件与日历功能将每位用户连接到各自的邮箱(IMAP 和 SMTP)和日历(CalDAV)。用户在应用中输入服务器地址和密码;密码以加密形式存储。您无需为他们配置邮件或日历服务器,但需决定他们可连接的范围:

应用设置项默认值功能说明
邮件、日历允许使用私有网络中的邮件服务器、允许使用私有网络中的日历服务器(AllowPrivateNetworks)关闭关闭时,服务器拒绝连接回环、私有和链路本地地址,因此应用无法用于访问您的内部网络。如果您的邮件或日历服务器位于私有地址,请开启此选项。
邮件、日历允许未加密连接(AllowInsecureConnections)关闭关闭时,连接必须使用 TLS(邮件:TLS 或 STARTTLS;日历:HTTPS)。
邮件未读检查间隔(分钟)(UnreadCheckMinutes)2 分钟当邮件服务器无法推送未读计数时,检查未读计数的频率。
邮件最大消息大小(MB)(MaxMessageSizeMB)25 MB发送和读取消息的大小限制。
日历发送提醒(EnableReminders)开启日历机器人会在日程开始前发送私信(对于没有自带提醒的日程,提前 10 分钟发送)。

若要允许用户使用其账户(而非密码)登录 Gmail 或 Microsoft 365 邮箱,请创建一个 OAuth 客户端并填写邮件应用的 Google 或 Microsoft 字段:

  • 谷歌:一个具有 Gmail API 和 https://mail.google.com/ 权限范围的 Web OAuth 客户端。
  • Microsoft:一个 Entra ID 应用,具有委托权限 IMAP.AccessAsUser.All、SMTP.Send、offline_access、openid、email 和 profile。默认租户为 common。
  • 两者的重定向 URI 均为 https://chat.example.com/plugins/com.antimatterchat.mail/oauth/callback(您的站点 URL)。

看板、笔记、白板、投票和操作手册

  • Kanban(focalboard)会在对话旁边的侧边面板中打开,与操作手册(Playbooks)相同。指向 /kanban/… 和 /boards/… 页面的旧链接会在社区中打开相同的看板或卡片。它唯一的设置是启用公共共享看板(EnablePublicSharedBoards,默认关闭),允许看板编辑者将看板共享给任何拥有链接的人,无需登录。
  • 笔记和投票没有设置。
  • 白板:系统管理员可以在其设置页面为整个服务器上传图形库(Excalidraw .excalidrawlib 文件,每个文件最大 5 MB)。社区管理员管理其所属社区的图形库。
  • Playbooks 会在其侧边面板中打开。指向 /playbooks/… 页面的旧链接会在社区中打开相同的运行(Run)或操作手册。它有几个设置,大多是实验性功能;默认设置适合大多数服务器。
  • Memes:谁可以添加表情包模板:所有人(默认)、系统管理员或无人(关闭自定义模板),后者会阻止添加新模板,但已添加的模板仍可使用。访客永远无法添加模板。添加模板的人和系统管理员可以删除它。
  • 待办事项没有服务器设置。

GitHub、GitLab 和 Jira

这些应用将 Antimatter 连接到您的代码托管平台和问题跟踪器。每个应用都需要在对方平台创建一个 OAuth 应用,并配置一个指向 Antimatter 的 Webhook。启用应用后,在任意频道中运行其设置命令,该命令会逐步引导您完成配置:/github setup、/gitlab setup 或 /jira setup。

应用OAuth 重定向 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> 或 /jira instance install cloud-oauth <url>;/jira webhook 会打印 Webhook URL。
在 GitHub 和 GitLab 应用中,请保持使用预注册 OAuth 应用处于关闭状态:它依赖于 Antimatter 不具备的 Mattermost 服务,且开启后应用将拒绝启动。请注册您自己的 OAuth 应用。

GitHub 和 GitLab 应用会在首次保存时生成其 Webhook 密钥和加密密钥。GitHub 应用可以限制为特定组织(GithubOrg),GitLab 应用可以限制为特定群组(GitlabGroup);对于 GitHub Enterprise 或自托管 GitLab,请设置其基础 URL。

指标

Metrics 应用将服务器的性能指标收集到 Antimatter 内部的一个小型时序数据库中,因此您可以下载这些指标或将其包含在支持数据包中,而无需运行 Prometheus。启动时,它会开启服务器的指标端点(MetricsSettings.Enable)。请参阅运维。

安装其他应用

Antimatter 运行 Mattermost 应用(插件)。添加应用有三种方式:

  • 来自远程市场。 启用远程市场(PluginSettings.EnableRemoteMarketplace)默认关闭,且 市场 URL(PluginSettings.MarketplaceURL)为空:Antimatter 不使用 Mattermost 的市场,如果来自 Mattermost 的配置中仍包含该地址,Antimatter 会忽略它。若要列出你信任的市场服务器上的应用,请开启该设置并设置其 URL。该市场提供的 Antimatter 自带应用(通话、操作手册、看板及其他)的构建版本会被隐藏,因此无法替换 Antimatter 自带的版本:允许市场构建版本替换 Antimatter 插件(PluginSettings.AllowMarketplaceToReplaceAntimatterPlugins)默认关闭。
  • 通过上传捆绑包(.tar.gz)。上传功能默认关闭,且系统控制台中没有对应的开关:请设置 AM_PLUGINSETTINGS_ENABLEUPLOADS=true,然后在插件管理中使用 上传插件,或使用 amctl --local plugin add app.tar.gz。
  • 从 URL:amctl plugin install-url <url>,同样需要开启上传功能。

Antimatter 会使用其信任的密钥来验证应用签名:Antimatter 密钥、Mattermost, Inc. 为其发布的应用签名所用的密钥(因此你自行下载的 Mattermost 应用可以安装),以及你在 PluginSettings.SignaturePublicKeyFiles 中添加的任何密钥。如果开启 需要插件签名(PluginSettings.RequirePluginSignature,默认关闭),未签名的应用将被拒绝,且上传功能将被禁用。

应用在服务器内部运行,并拥有对其数据的完全访问权限。请仅安装您信任的应用。

一些为 Mattermost 付费版本制作的应用会自行检查 Mattermost 许可证并拒绝运行;Antimatter 不会为它们假装拥有许可证。