內建應用程式
Antimatter 的 Docker 映像檔包含一組應用程式(在系統控制台中稱為外掛程式)。本頁列出這些應用程式、說明安裝後哪些會預設開啟,並涵蓋管理員需要設定的各項內容。
隨附的應用程式
應用程式在系統控制台中列為擴充程式。它們包含在映像檔中(位於 /antimatter/prepackaged_plugins),並使用 Antimatter 應用程式簽章金鑰簽署,因此無需網路連線即可安裝。
發行版檔案庫以及 .deb 和 .rpm 套件包含較少的應用程式:請參閱套件與檔案庫中的應用程式。
| 應用程式 | 應用程式 ID | 映像檔 | 安裝後是否開啟 |
|---|---|---|---|
| Agents (AI) | mattermost-ai | 兩者皆是 | 是 |
| Calls | com.mattermost.calls | 兩者皆是 | 是 |
| Kanban | focalboard | 兩者皆是 | 是 |
| Playbooks | playbooks | 兩者皆是 | 是 |
| GitHub | github | 兩者皆是 | 否 |
| GitLab | com.github.manland.mattermost-plugin-gitlab | 兩者皆是 | 否 |
| Jira | jira | 兩者皆是 | 否 |
| 指標 | com.mattermost.mattermost-plugin-metrics | 兩者皆是 | 否 |
| Voice Channels | com.antimatterchat.voice-channels | antimatter-next | 是 |
| Polls | com.antimatterchat.polls | antimatter-next | 是 |
| Notes | com.antimatterchat.notes | antimatter-next | 是 |
| Whiteboard | com.antimatterchat.whiteboard | antimatter-next | 是 |
com.antimatterchat.mail | antimatter-next | 是 | |
| Calendar | com.antimatterchat.calendar | antimatter-next | 是 |
| GIFs | com.antimatterchat.gifs | antimatter-next | 是 |
| Memes | memes | antimatter-next | 否 |
| Todo | com.mattermost.plugin-todo | antimatter-next | 否 |
預設開啟的應用程式若尚未安裝,會在每次啟動時安裝;若映像檔中有較新版本,則會升級。若您停用某個應用程式,它將保持停用狀態:預設值僅適用於設定中尚未提及的應用程式。保留 Mattermost ID 的應用程式(Agents、Calls、Kanban、Playbooks 及整合服務)為 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
這也是安裝 Todo 的方式,因為它未在市集對話框中提供。變數 AM_PLUGINSETTINGS_PLUGINSTATES 也有效,但它會取代整個映射表:請列出您想要開啟的所有應用程式。
應用程式設定
應用程式設定儲存於 PluginSettings.Plugins.<app id>,其中金鑰使用小寫。您可以在應用程式的系統控制台頁面變更這些設定,或使用 amctl config patch,如設定一節所示。AM_PLUGINSETTINGS_PLUGINS 會一次取代並鎖定所有應用程式的設定,因此請避免使用。
GIFs
GIFs 應用程式為表情符號選擇器新增 GIF 和貼紙分頁,由 Antimatter 的 GIF 服務(gifs-server)支援,該服務使用 Tenor API。站点的 compose 檔案會執行該服務並透過變數設定應用程式。其設定位於系統控制台 › 擴充程式 › GIFs:
| 設定 | 變數(預設值) | 預設值 | 功能說明 |
|---|---|---|---|
| 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 金鑰。
當 GIFs 應用程式設定完成後,其分頁會取代內建的 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 | 發送與讀取訊息的大小限制。 | |
| Calendar | 發送提醒(EnableReminders) | 開啟 | 行事曆機器人會在活動前發送私人訊息(對於沒有自訂警報的活動,提前 10 分鐘)。 |
若要讓使用者使用帳戶而非密碼登入 Gmail 或 Microsoft 365 信箱,請建立 OAuth 客戶端並填寫郵件應用程式的 Google 或 Microsoft 欄位:
- Google:一個 Web OAuth 客戶端,具有 Gmail API 和
https://mail.google.com/範圍。 - 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)。
看板、筆記、白板、投票與操作手冊
- 看板(
focalboard)會像操作手冊一樣,在對話旁的側邊欄中開啟。指向/kanban/…和/boards/…頁面的舊連結,會在社群中開啟相同的看板或卡片。它唯一的設定項目 啟用公開共用的看板(EnablePublicSharedBoards,預設為關),可讓看板編輯者與任何擁有連結的人共用看板,無需登入。 - 筆記 和 投票 沒有設定項目。
- 白板:系統管理員可以在其設定頁面中為整個伺服器上傳形狀庫(Excalidraw
.excalidrawlib檔案,每個檔案最大 5 MB)。社群管理員則管理其自身社群的庫。 - 操作手冊會在側邊欄中開啟。指向
/playbooks/…頁面的舊連結,會在社群中開啟相同的執行或操作手冊。它包含幾個設定項目,大多是實驗性功能;預設值適用於大多數伺服器。 - 迷因:誰可以新增迷因範本:所有人(預設值)、系統管理員,或 無(停用自訂範本),後者會阻止新增範本,但已新增的範本仍可繼續使用。訪客永遠無法新增範本。新增範本的人員和系統管理員可以刪除它。
- 待辦事項 沒有伺服器設定。
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)預設為關,且 市集網址(PluginSettings.MarketplaceURL)為空:Antimatter 不使用 Mattermost 的市集,並會忽略 Mattermost 設定檔中殘留的地址。若要列出您信任的市集伺服器上的應用程式,請開啟此設定並設定其網址。該市集提供的 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 不會為這些應用程式偽造授權。