แอปที่รวมมาให้

Docker images ของ Antimatter มาพร้อมชุดแอป (ปลั๊กอิน, ในคอนโซลระบบ) หน้างานน้ีจะลิสต์แอปเหล่าน้ี, ระบุท่ีใดเปิดใช้งานหลังจากตดิตัง, และครอบคลุมการตั้งค่าท่ีแต่ละแอปตองการจากผู้ดูลแลระบบ

แอปท่ีรวมมาให้

แอปจะแสดงในรปูของ ปลั๊กอิน ในคอนโซลระบบ. ท่ีอยู้ใน image (ใน /antimatter/prepackaged_plugins), เซ็นด้วยคีย์เซ็นแอปของ Antimatter, ดงัน้ันท่ีตดิตังไดโ์ห้ไม่ตองการการเชอืมตอ่อินเตอรเ์นต

ไฟล์เก็บถาวรของเวอร์ชันที่ปล่อยออกมา และแพ็กเกจ .deb และ .rpm มีแอปน้อยกว่า: ดู แอปในแพ็กเกจและไฟล์เก็บถาวร

แอปApp idภาพเปิดใช้งานหลังจากตดิตัง
Agents (AI)mattermost-aiทังสองใช่
Callscom.mattermost.callsทังสองใช่
Kanbanfocalboardทังสองใช่
เพลยบุ๊กplaybooksทังสองใช่
GitHubgithubทังสองไม่
GitLabcom.github.manland.mattermost-plugin-gitlabทังสองไม่
Jirajiraทังสองไม่
ตัวชี้วัดcom.mattermost.mattermost-plugin-metricsทังสองไม่
Voice Channelscom.antimatterchat.voice-channelsantimatter-nextใช่
โพลcom.antimatterchat.pollsantimatter-nextใช่
โน้ตcom.antimatterchat.notesantimatter-nextใช่
ไวท์บอรด์com.antimatterchat.whiteboardantimatter-nextใช่
อีเมลcom.antimatterchat.mailantimatter-nextใช่
ปฏิทินcom.antimatterchat.calendarantimatter-nextใช่
GIFscom.antimatterchat.gifsantimatter-nextใช่
Memesmemesantimatter-nextไม่
ส่ิงท่ีต้องทำcom.mattermost.plugin-todoantimatter-nextไม่

แอปท่ีเปิดใช้งานโดยพื้้นฐานจะตดิตังในแต่ละครังท่ีสตารตถา้ยังไม่ตดิตัง, หรืออัปเกรดถา้ image มีเวอร์ชัันท่ีใหม่มากกวา้. ถา้คุณปิดใช้งานแอปใด, ท่ีจะปิดอยู้ดงัน้ี: พื้้นฐานน้ีจะใช้กับแอปท่ีการตั้งค่ายังไม่ได้อ้างถงิ่. แอปท่ีคง id ของ Mattermost (Agents, Calls, Kanban, Playbooks และ integrations) เปน็ build ของ Antimatter เอง

เปิด, ปิด และตั้งค่าแอป

ไปท่ี คอนโซลระบบ › ปลั๊กอิน › การจัดการปลั๊กอิน. ใต ปลั๊กอินท่ีตดิตัง, แอปแต่ละแอปมมี เปิดใช้งาน หรือ ปิดใช้งาน, การตั้งค่า และ นำออก, และแสดงสถานะ (Running, Not running, Failed to start…). แอปแต่ละแอปท่ีมี การตั้งค่าจะมมีหน้างานของท่ีเองใต คอนโซลระบบ › ปลั๊กอิน

แอปที่ถูกรวมไว้แต่ปิดไว้โดยค่าเริ่มต้น จะติดตั้งจากสำเนาของภาพ (image) เอง: คลิกที่รูปของคุณที่ด้านบนของแถบแอป แล้วเลือก App Marketplace (ในอินเทอร์เฟซแบบคลาสสิก จะอยู่ในเมนูผลิตภัณฑ์) ค้นหาแอปแล้วคลิก ติดตั้ง จากนั้นเปิดใช้งานใน Plugin Management จากบรรทัดคำสั่ง:

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, map ของ app ids. คุณสามารถ merge entries เข้าไปดวย 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, ท่ีไม่ได้นำเสนอใน Marketplace dialog. ตัวแปร AM_PLUGINSETTINGS_PLUGINSTATES กท็ ำงาน, แต่มันจะแทนท่ี map ทังหมด: ลิสต์แอปทังหมดท่ีคุณตองการใหเปิดใช้งาน

การตั้งค่าแอป

การตั้งค่าแอปถูกเก็บไว้ภายใต้ PluginSettings.Plugins.<app id> โดยคีย์จะเป็นตัวพิมพ์เล็ก คุณสามารถแก้ไขได้บนหน้า System Console ของแอป หรือด้วยคำสั่ง amctl config patch ตามที่แสดงใน Configuration AM_PLUGINSETTINGS_PLUGINS จะแทนที่การตั้งค่าของทุกแอปพร้อมกันและล็อกทั้งหมดไว้ ดังนั้นควรหลีกเลี่ยงการใช้อย่า

GIFs

แอป GIFs เพิ่มแท็บ GIF และสติกเกอร์ลงในตัวเลือกอิโมจิ โดยอาศัยบริการ GIF ของ Antimatter (gifs-server) ซึ่งทำงานผ่าน Tenor API ไฟล์ compose ของไซต์จะรันบริการและตั้งค่าแอปผ่านตัวแปร การตั้งค่าของแอปใน System Console › Plugins › GIFs:

การตั้งค่าตัวแปร (ค่าสำรอง)ค่าเริ่มต้นสิ่งที่ทำ
URL ของบริการ GIFAM_GIFS_SERVICE_URLว่างAPI base ของบริการ ตัวอย่างเช่น http://gifs:8080/v2 GIF จะถูกปิดใช้งานเมื่อฟิลด์นี้ว่างอยู่
API keyAM_GIFS_API_KEYว่างหนึ่งใน AM_GIFS_API_KEYS ของบริการ
คีย์สำหรับอัปโหลดAM_GIFS_UPLOAD_KEYว่างหนึ่งใน AM_GIFS_UPLOAD_KEYS ของบริการ ช่วยให้ผู้ใช้เพิ่ม GIF และสติ๊กเกอร์จากตัวเลือก (picker) และลบสิ่งเหล่านี้ที่เพิ่มด้วยวิธีนี้ หากเว้นว่างไว้ การอัปโหลดจะถูกปิด
ใครสามารถเพิ่ม GIF และสติกเกอร์ได้ผู้ดูลำระบบผู้ดูแลระบบ หรือ ทุกคน แขกไม่สามารถทำได้เสมอไป เช่นเดียวกับอิโมจิกำกับเอง สิ่งที่ผู้ใช้เพิ่มจะพร้อมใช้งานสำหรับทุกคน; ผู้ที่เพิ่มและผู้ดูแลระบบสามารถลบได้
เปิดใช้งานสติกเกอร์เปิดแสดงแท็บสติกเกอร์
ตัวกรองเนื้อหาmediumhigh, medium, low หรือ off
ส่งสื่อผ่าน Antimatterเปิดเบราว์เซอร์จะโหลด GIF จาก Antimatter ซึ่งจะไปดึงข้อมูลจากบริการ 应保持เปิดใช้งานเมื่อบริการอยู่บนเครือข่ายภายในเท่านั้น
URL ของสื่อ/media/ ของบริการตำแหน่งของสื่อ เมื่อส่งโดยตรง
ขนาดแคช (MB)64 MBแคชหน่วยความจำของแอป

สำหรับแอปนี้ ตัวแปรเป็นเพียงค่าสำรอง: ค่าที่ตั้งไว้ใน System Console จะมีผลเหนือกว่าตัวแปรเหล่านั้น หากตัวเลือกรูป GIF ว่างเปล่า ให้ตรวจสอบ URL ของบริการและ API key บนหน้าดังกล่าว

เมื่อตั้งค่าแอป GIFs แล้ว แท็บของมันจะแทนที่ตัวเลือกรูป Giphy ที่มีอยู่ในตัว (System Console › Integrations › GIF › Enable GIF Picker, ServiceSettings.EnableGifPicker)

บริการ GIF

บริการจะเก็บทุกอย่างไว้ในไดเรกทอรีข้อมูล (/data, โวลุ่ม gifs): ดัชนีการค้นหาและสื่อ ตัวแปรหลักของมัน:

ตัวแปรค่าเริ่มต้นสิ่งที่ทำ
AM_GIFS_API_KEYSnoneคีย์ API ที่คั่นด้วยเครื่องหมายจุลภาค หากไม่มีคีย์ API จะเปิดกว้างสำหรับทุกคนที่เข้าถึงได้ การมีหลายคีย์ช่วยให้คุณสามารถหมุนเวียนคีย์ได้
AM_GIFS_UPLOAD_KEYSnoneคีย์ที่อนุญาตให้อัปโหลด และลบสิ่งที่อัปโหลดแล้ว หากไม่มีคีย์เหล่านี้จะไม่สามารถอัปโหลดได้
AM_GIFS_RATE_LIMIT20จำนวนคำขอต่อวินาทีต่อไคลเอนต์ (API key และที่อยู่); 0 ปิดใช้งาน ไฟล์ compose ตั้งค่าเป็น 0 เนื่องจากคำขอทั้งหมดของ Antimatter ใช้คีย์และที่อยู่เดียวกัน
AM_GIFS_LISTEN:8080ที่อยู่สำหรับรับฟัง
AM_GIFS_PUBLIC_URLfrom requestsURL ภายนอก หากคุณเปิดใช้งานบริการ
AM_GIFS_TRUST_PROXYfalseเชื่อถือเฮดเดอร์ X-Forwarded-* เฉพาะเมื่ออยู่เบื้องหลังพร็อกซีเท่านั้น
AM_GIFS_UPLOAD_MAX_MB16ขนาดไฟล์ที่อัปโหลดได้สูงสุด

เพื่อเพิ่ม GIF ของคุณเองจำนวนมาก ให้ใช้ manifest นำเข้าจากไดเรกทอรีที่ mount เข้าไปในคอนเทนเนอร์แบบ one-off:

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

เพื่อ import สติกเกอร์เริ่มต้นใหม่หลังอัปเกรด: docker compose run --rm gifs stickers รูปแบบของ manifest และคำสั่งอื่น ๆ อยู่ใน README ของ gifs-server

อีเมลและปฏิทิน

อีเมลและปฏิทินจะเชื่อมต่อแต่ละคนไปยังกล่องจดหมาย (IMAP และ SMTP) และปฏิทิน (CalDAV) ของพวกเขาเอง ผู้ใช้จะกรอกรหัสผ่านและเซิร์ฟเวอร์ในแอป รหัสผ่านจะถูกเก็บอย่างเข้ารหัส คุณไม่ต้องตั้งค่าเซิร์ฟเวอร์อีเมลหรือปฏิทินให้พวกเขา แต่คุณเป็นผู้กำหนดว่าพวกเขาสามารถเชื่อมต่อได้กับอะไรบ้าง:

แอปการตั้งค่าค่าเริ่มต้นสิ่งที่ทำ
อีเมล, ปฏิทินอนุญาตเซิร์ฟเวอร์อีเมลบนเครือข่ายส่วนตัว, อนุญาตเซิร์ฟเวอร์ปฏิทินบนเครือข่ายส่วนตัว (AllowPrivateNetworks)ปิดเมื่อปิดอยู่ เซิร์ฟเวอร์จะปฏิเสธการเชื่อมต่อไปยัง loopback, private และ link-local addresses เพื่อป้องกันไม่ให้แอปถูกใช้เพื่อเข้าถึงเครือข่ายภายในของคุณ เปิดใช้งานหากเซิร์ฟเวอร์อีเมลหรือปฏิทินของคุณอยู่บน private address
อีเมล, ปฏิทินอนุญาตการเชื่อมต่อที่ไม่มีการเข้ารหัส (AllowInsecureConnections)ปิดเมื่อปิดอยู่ การเชื่อมต่อต้องใช้ TLS (อีเมล: TLS หรือ STARTTLS; ปฏิทิน: HTTPS)
อีเมลช่วงเวลาตรวจสอบข้อความที่ยังไม่ได้อ่าน (นาที) (UnreadCheckMinutes)2 นาทีความถี่ในการตรวจสอบจำนวนข้อความที่ยังไม่ได้อ่าน เมื่อเซิร์ฟเวอร์อีเมลไม่สามารถ push ได้
อีเมลขนาดข้อความสูงสุด (MB) (MaxMessageSizeMB)25 MBขีดจำกัดขนาดของข้อความที่ส่งและอ่าน
ปฏิทินส่งการแจ้งเตือน (EnableReminders)เปิดบอทปฏิทินจะส่งข้อความส่วนตัวก่อนกิจกรรม (10 นาทีก่อน สำหรับกิจกรรมที่ไม่มี alarm ของตัวเอง)

เพื่อให้ผู้ใช้สามารถเข้าสู่ระบบกล่องจดหมาย Gmail หรือ Microsoft 365 ด้วยบัญชีของพวกเขาแทนรหัสผ่าน ให้สร้าง OAuth client และกรอกฟิลด์ Google หรือ Microsoft ในแอปอีเมล:

  • Google: Web OAuth client ที่ใช้ Gmail API และ scope https://mail.google.com/
  • Microsoft: แอป Entra ID ที่มี delegated permissions IMAP.AccessAsUser.All, SMTP.Send, offline_access, openid, email และ profile โดยค่าเริ่มต้น tenant คือ common
  • ในทั้งสองกรณี redirect URI คือ https://chat.example.com/plugins/com.antimatterchat.mail/oauth/callback (URL ของเว็บไซต์คุณ)

Kanban, โน้ต, ไวท์บอรด์, โพล และเพลย์บุ๊ก

  • Kanban (focalboard) จะเปิดในแผงด้านข้างถัดจากการสนทนา เช่นเดียวกับ Playbooks ลิงก์เก่าไปยังหน้า /kanban/… และ /boards/… จะเปิดบอร์ดหรือการด์เดียวกันในชุมชน การตั้งค่าเพียงอย่างเดียวของมันคือ Enable Publicly-Shared Boards (EnablePublicSharedBoards, ปิด) ซึ่งช่วยให้ผู้แก้ไขบอร์ดสามารถแชร์บอร์ดกับทุกคนที่มีลิงก์ โดยไม่ต้องเข้าสู่ระบบ
  • Notes และ Polls ไม่มีตัวเลือกการตั้งค่า
  • Whiteboard: ผู้ดูแลระบบสามารถอัปโหลดไลบรารีรูปทรง (ไฟล์ Excalidraw .excalidrawlib, แต่ละไฟล์ไม่เกิน 5 MB) สำหรับทั้งเซิร์ฟเวอร์ในหน้าการตั้งค่า ส่วนผู้ดูแลชุมชนจะจัดการไลบรารีของชุมชนตนเอง
  • Playbooks จะเปิดในแผงด้านข้าง ลิงก์เก่าไปยังหน้า /playbooks/… จะเปิดรันหรือเพลย์บุ๊กเดียวกันในชุมชน มีหลายการตั้้งค่า ส่วนใหญ่เป็นคุณลักษณะทดลอง; ค่าเริ่มต้นเหมาะสมกับเซิร์ฟเวอร์ส่วนใหญ่
  • Memes: ใครสามารถเพิ่มเทมเพลตมีมได้: ทุกคน (ค่าเริ่มต้น), ผู้ดูแลระบบ หรือ ไม่มีใคร (ปิดเทมเพลตกำกับเอง) ซึ่งหยุดการเพิ่มเทมเพลตใหม่ แต่เทมเพลตที่เพิ่มไว้แล้วยังคงใช้งานได้ตามปกติ แขกไม่สามารถเพิ่มเทมเพลตได้ ผู้ที่เพิ่มเทมเพลตและผู้ดูแลระบบสามารถลบได้
  • Todo ไม่มีตัวเลือกการตั้งค่าระดับเซิร์ฟเวอร์

GitHub, GitLab และ Jira

แอปเหล่านี้เชื่อมโยง Antimatter กับระบบโฮสต์โค้ดและระบบติดตามปัญหาของคุณ แต่ละแอปต้องการแอปพลิเคชัน OAuth ในอีกฝั่งหนึ่ง และเว็บฮุคที่ชี้กลับมายัง Antimatter เปิดใช้งานแอป จากนั้นรันคำสั่งตั้งค่าในช่องใดก็ได้ ซึ่งจะให้คำแนะนำทีละขั้นตอน: /github setup, /gitlab setup หรือ /jira setup

แอปURL สำหรับเปลี่ยนเส้นทาง OAuthURL ของเว็บฮุค
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 จะแสดง URL ของเว็บฮุค
ปิด Use Preregistered OAuth Application ไว้ในแอป GitHub และ GitLab: ฟีเจอร์นี้พึ่งพาบริการของ Mattermost ซึ่ง Antimatter ไม่มี และแอปจะปฏิเสธการเริ่มทำงานหากเปิดฟีเจอร์นี้ไว้ จดทะเบียนแอปพลิเคชัน OAuth ของคุณเอง

แอป GitHub และ GitLab จะสร้างรหัสลับเว็บฮุคและคีย์การเข้ารหัสเมื่อบันทึกเป็นครั้งแรก แอป GitHub สามารถจำกัดให้อยู่ในองค์กร (GithubOrg) และแอป GitLab สามารถจำกัดให้อยู่ในกลุ่ม (GitlabGroup); สำหรับ GitHub Enterprise หรือ GitLab ที่โฮสต์เอง ให้ตั้งค่า URL เบส

ตัวชี้วัด

แอป Metrics จะรวบรวมข้อมูลประสิทธิภาพของเซิร์ฟเวอร์ลงในฐานข้อมูลอนุกรมเวลาขนาดเล็กภายใน Antimatter เพื่อให้คุณดาวน์โหลดข้อมูลเหล่านั้นหรือรวมไว้ในแพ็กเก็ตการสนับสนุนได้โดยไม่ต้องรัน Prometheus เมื่อแอปเริ่มทำงาน จะเปิดใช้งานจุดปลายทางเมตริกของเซิร์ฟเวอร์ (MetricsSettings.Enable) ดู Operations

การติดตั้งแอปอื่นๆ

Antimatter รันแอปของ Mattermost (ปลั๊กอิน) มีสามวิธีในการเพิ่มแอป:

  • จาก Remote Marketplace เปิดใช้งาน Remote Marketplace (PluginSettings.EnableRemoteMarketplace) ปิดอยู่โดยปริยาย และ URL ของ Marketplace (PluginSettings.MarketplaceURL) ว่างเปล่า: Antimatter ไม่ใช้ Marketplace ของ Mattermost และจะเพิกเฉยต่อที่อยู่ดังกล่าวหากการตั้งค่าจาก Mattermost ยังมีอยู่ เพื่อแสดงรายการแอปของเซิร์ฟเวอร์ Marketplace ที่คุณเชื่อถือ ให้เปิดการตั้งค่านี้และกำหนด URL การสร้างแอปของ Marketplace นั้นสำหรับแอปที่ Antimatter จัดส่ง (Calls, Playbooks, Kanban และอื่นๆ) จะถูกซ่อนไว้ จึงไม่สามารถแทนที่ของ Antimatter ได้: อนุญาตให้ Marketplace สร้างปลั๊กอินของ 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 จะไม่ปลอมตัวว่ามีใบอนุญาตสำหรับแอปเหล่านั้น