内置应用
Antimatter 的 Docker 镜像包含一组应用(在系统控制台中称为插件)。本页列出了这些应用,说明了安装后哪些默认开启,并介绍了管理员需要为每个应用进行的设置。
内置应用
应用在系统控制台中列为 插件。它们包含在镜像中(位于 /antimatter/prepackaged_plugins),并使用 Antimatter 应用签名密钥进行签名,因此无需互联网连接即可安装。
发布存档以及 .deb 和 .rpm 软件包中包含的应用较少:请参阅软件包和存档中的应用。
| 应用 | 应用 ID | 镜像 | 安装后是否开启 |
|---|---|---|---|
| 智能体(AI) | mattermost-ai | 两者 | 是 |
| 通话 | com.mattermost.calls | 两者 | 是 |
| 看板 | focalboard | 两者 | 是 |
| 操作手册 | playbooks | 两者 | 是 |
| GitHub | github | 两者 | 否 |
| GitLab | com.github.manland.mattermost-plugin-gitlab | 两者 | 否 |
| Jira | jira | 两者 | 否 |
| 指标 | com.mattermost.mattermost-plugin-metrics | 两者 | 否 |
| 语音频道 | com.antimatterchat.voice-channels | antimatter-next | 是 |
| 投票 | com.antimatterchat.polls | antimatter-next | 是 |
| 笔记 | com.antimatterchat.notes | antimatter-next | 是 |
| 白板 | com.antimatterchat.whiteboard | antimatter-next | 是 |
| 邮件 | com.antimatterchat.mail | antimatter-next | 是 |
| 日历 | com.antimatterchat.calendar | antimatter-next | 是 |
| GIF | com.antimatterchat.gifs | antimatter-next | 是 |
| 表情包 | memes | antimatter-next | 否 |
| 待办事项 | com.mattermost.plugin-todo | antimatter-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 服务 URL | AM_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_LIMIT | 20 | 每个客户端(API 密钥和地址)的每秒请求数;0 表示关闭。compose 文件设置为 0,因为 Antimatter 的所有请求共享同一个密钥和地址。 |
AM_GIFS_LISTEN | :8080 | 监听地址。 |
AM_GIFS_PUBLIC_URL | 来自请求 | 如果您公开该服务,则为其外部 URL。 |
AM_GIFS_TRUST_PROXY | false | 信任 X-Forwarded-* 请求头,仅在代理后方使用。 |
AM_GIFS_UPLOAD_MAX_MB | 16 | 最大上传文件大小。 |
若要批量添加自定义 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 重定向 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> 或 /jira instance install cloud-oauth <url>;/jira webhook 会打印 Webhook URL。 | |
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 不会为它们假装拥有许可证。