اپلیکیشن‌های همراه

تصویرهای Docker مربوط به Antimatter با مجموعه‌ای از اپلیکیشن‌ها (که در کنسول سیستم به‌عنوان افزونه‌ها شناخته می‌شوند) همراه هستند. این صفحه فهرست آن‌ها را ارائه می‌دهد، مشخص می‌کند کدام‌یک پس از نصب فعال هستند، و تنظیماتی را که هر اپلیکیشن از یک مدیر نیاز دارد پوشش می‌دهد.

اپلیکیشن‌های همراه

برنامه‌ها در کنسول سیستم به‌عنوان پلاگین ها فهرست می‌شوند. این برنامه‌ها در تصویر (در مسیر /antimatter/prepackaged_plugins) قرار دارند و با کلید امضای برنامه‌های Antimatter امضا شده‌اند، بنابراین بدون نیاز به اتصال به اینترنت نصب می‌شوند.

بایگانی انتشار و بسته‌های .deb و .rpm شامل برنامه‌های کمتری هستند؛ برای جزئیات به برنامه‌های موجود در بسته‌ها و بایگانی مراجعه کنید.

اپلیکیشنشناسه اپلیکیشنتصویرفعال پس از نصب
گفتگوی هوش مصنوعیmattermost-aiهر دوبله
مکالمه‌هاcom.mattermost.callsهر دوبله
GitHubgithubهر دوخیر
GitLabcom.github.manland.mattermost-plugin-gitlabهر دوخیر
Jirajiraهر دوخیر
Metricscom.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بله
GIFscom.antimatterchat.gifsantimatter-nextبله
Memesmemesantimatter-nextخیر
کارهای در انتظارcom.mattermost.plugin-todoantimatter-nextخیر

برنامه‌هایی که به‌طور پیش‌فرض فعال هستند، در هر شروع اگر نصب نشده باشند نصب می‌شوند، یا اگر نسخه جدیدتری در ایمیج وجود داشته باشد، به‌روزرسانی می‌شوند. اگر یکی از آن‌ها را غیرفعال کنید، غیرفعال باقی می‌ماند: حالت پیش‌فرض فقط برای برنامه‌هایی اعمال می‌شود که در پیکربندی ذکر نشده‌اند. برنامه‌هایی که شناسه Mattermost خود را حفظ می‌کنند (گفتگوی هوش مصنوعی، مکالمه و یکپارچه‌سازی‌ها) نسخه‌های اختصاصی Antimatter هستند.

Kanban (focalboard) و Playbooks (playbooks) دیگر با سرور یا هیچ‌یک از ایمیج‌ها به‌صورت پیش‌فرض ارائه نمی‌شوند: هرکدام را که می‌خواهید از انتشار GitHub اختصاصی آن نصب کنید (به برنامه‌ها در بسته‌ها و آرشیو مراجعه کنید)، مانند هر برنامه دیگری که به‌طور پیش‌فرض ارائه نشده است. سروری که یکی از آن‌ها را از قبل نصب دارد، پس از به‌روزرسانی نیز آن را حفظ می‌کند. هر دو نسخه اختصاصی Antimatter باقی می‌مانند: نسخه‌های اصلی آن‌ها در Marketplace هرگز جایگزین نسخه‌های Antimatter نمی‌شوند.

فعال، غیرفعال و پیکربندی اپلیکیشن‌ها

به مسیر کنسول سیستم › پلاگین ها › مدیریت پلاگین بروید. در بخش پلاگین های نصب شده، برای هر برنامه گزینه‌های فعال کردن یا غیر فعال کردن، تنظیمات و حذف وجود دارد و وضعیت آن (در حال اجرا، در حال اجرا نیست، خطا در راه‌اندازی…) نمایش داده می‌شود. هر برنامه‌ای که تنظیمات دارد، صفحه‌ای اختصاصی در مسیر کنسول سیستم › پلاگین ها نیز دارد.

برنامه‌های همراه که به‌طور پیش‌فرض غیرفعال هستند، از کپی موجود در تصویر (image) نصب می‌شوند: روی عکس خود در بالای نوار برنامه‌ها کلیک کنید و بازارچه برنامه را انتخاب کنید (در رابط کاربری کلاسیک، این گزینه در منوی محصول قرار دارد)، برنامه مورد نظر را پیدا کرده و روی نصب کلیک کنید، سپس آن را در مدیریت افزونه‌ها فعال کنید. از خط فرمان:

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 ذخیره می‌شوند که یک نقشه از شناسه‌های برنامه‌ها است. می‌توانید با استفاده از 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

برنامه GIFها یک تب برای GIF و استیکر به انتخابگر ایموجی اضافه می‌کند که پشتوانه آن سرویس GIF از Antimatter (gifs-server) است و از API Tenor استفاده می‌کند. فایل compose سایت این سرویس را اجرا کرده و برنامه را از طریق متغیرها پیکربندی می‌کند. تنظیمات آن در مسیر کنسول سیستم › پلاگین ها › GIFها قرار دارد:

تنظیممتغیر (پیش‌فرض)مقدار پیش‌فرضعملکرد
آدرس سرویس GIFAM_GIFS_SERVICE_URLخالیآدرس پایه API سرویس، برای مثال http://gifs:8080/v2. تا زمانی که این فیلد خالی باشد، GIFها غیرفعال هستند.
کلید APIAM_GIFS_API_KEYخالییکی از AM_GIFS_API_KEYS سرویس.
کلید بارگذاریAM_GIFS_UPLOAD_KEYخالییکی از کلیدهای AM_GIFS_UPLOAD_KEYS سرویس. به کاربران اجازه می‌دهد GIF و استیکر از طریق انتخابگر اضافه کنند و مواردی که به این روش اضافه شده‌اند را حذف کنند. اگر این فیلد خالی باشد، بارگذاری غیرفعال می‌شود.
چه کسانی می‌توانند GIF و استیکر اضافه کنندمدیران سیستممدیران سیستم یا همه. مهمانان هرگز نمی‌توانند این کار را انجام دهند، همان‌طور که برای ایموجی‌های سفارشی نیز صدق می‌کند. مواردی که افراد اضافه می‌کنند برای همه در دسترس است؛ شخص اضافه‌کننده و مدیران سیستم می‌توانند آن را حذف کنند.
فعال‌سازی استیکرهاروشنتب استیکر را نمایش می‌دهد.
فیلتر محتوامتوسطبالا، متوسط، پایین یا خاموش.
ارسال رسانه از طریق آنتی‌مترروشنمرورگرها GIFها را از آنتی‌متر بارگذاری می‌کنند که آن‌ها را از سرویس دریافت می‌کند. اگر سرویس فقط در شبکه داخلی شما باشد، این گزینه را روشن نگه دارید.
آدرس رسانه/media/ سرویسمحل قرارگیری رسانه‌ها در صورت ارسال مستقیم.
حجم کش (مگابایت)64 مگابایتکش حافظه اپلیکیشن.

برای این اپلیکیشن، متغیرها فقط به عنوان مقادیر جایگزین عمل می‌کنند: مقداری که در کنسول سیستم تنظیم شده باشد، بر آن‌ها اولویت دارد. اگر انتخابگر GIF خالی بماند، آدرس سرویس و کلید API را در آن صفحه بررسی کنید.

در حالی که برنامه GIFها پیکربندی شده است، تب آن جایگزین انتخابگر Giphy داخلی می‌شود (کنسول سیستم › ادغام ها › GIF (بتا) › فعال کردن GIF Picker، ServiceSettings.EnableGifPicker).

سرویس GIF

سرویس همه چیز را در دایرکتوری داده خود (/data، حجم gifs) نگه می‌دارد: یک شاخص جستجو و رسانه‌ها. متغیرهای اصلی آن:

متغیرمقدار پیش‌فرضعملکرد
AM_GIFS_API_KEYSهیچ‌کدامکلیدهای API جدا شده با ویرگول. بدون کلید، API برای هر کسی که به آن دسترسی داشته باشد باز است. چند کلید به شما امکان می‌دهد آن‌ها را چرخش دهید.
AM_GIFS_UPLOAD_KEYSهیچ‌کدامکلیدهای مجاز برای بارگذاری و حذف موارد بارگذاری‌شده. بدون یکی از این کلیدها، بارگذاری امکان‌پذیر نیست.
AM_GIFS_RATE_LIMIT20درخواست در ثانیه برای هر کلاینت (کلید API و آدرس)؛ 0 آن را غیرفعال می‌کند. فایل compose مقدار 0 را تنظیم می‌کند، زیرا تمام درخواست‌های آنتی‌متر از یک کلید و آدرس مشترک استفاده می‌کنند.
AM_GIFS_LISTEN:8080آدرس شنود.
AM_GIFS_PUBLIC_URLاز درخواست‌هانشانی اینترنتی خارجی، در صورتی که سرویس را در دسترس قرار می‌دهید.
AM_GIFS_TRUST_PROXYfalseاعتماد به هدرهای X-Forwarded-*، فقط در پشت یک پروکسی.
AM_GIFS_UPLOAD_MAX_MB16بزرگ‌ترین فایل بارگذاری‌شده.

برای افزودن GIFهای خودتان به صورت انبوه، آن‌ها را با یک فهرست (manifest) از یک پوشه که به یک کانتینر یک‌بار مصرف (one-off) متصل شده، وارد کنید:

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

برای وارد کردن مجدد استیکرهای پیش‌فرض پس از یک ارتقا: docker compose run --rm gifs stickers. قالب فهرست و سایر دستورات در README سرویس gifs-server آمده است.

ایمیل و تقویم

ایمیل و تقویم هر کاربر را به صندوق ایمیل (IMAP و SMTP) و تقویم (CalDAV) شخصی‌اش متصل می‌کنند. کاربران نام سرور و رمز عبور خود را در برنامه وارد می‌کنند؛ رمزها به صورت رمزگذاری‌شده ذخیره می‌شوند. شما سرورهای ایمیل یا تقویم را برای آن‌ها پیکربندی نمی‌کنید، اما تعیین می‌کنید که به چه سرورهایی می‌توانند متصل شوند:

اپلیکیشنتنظیممقدار پیش‌فرضعملکرد
ایمیل، تقویماجازه اتصال به سرورهای ایمیل در شبکه‌های خصوصی، اجازه اتصال به سرورهای تقویم در شبکه‌های خصوصی (AllowPrivateNetworks)خاموشخاموش، سرور از اتصال به نشانی‌های حلقه (loopback)، خصوصی و لینک‌محلی (link-local) خودداری می‌کند، بنابراین نمی‌توان از این برنامه‌ها برای دسترسی به شبکه داخلی شما استفاده کرد. اگر سرور ایمیل یا تقویم شما روی یک نشانی خصوصی قرار دارد، این گزینه را روشن کنید.
ایمیل، تقویماجازه اتصال‌های بدون رمزنگاری (AllowInsecureConnections)خاموشخاموش، اتصال‌ها باید از TLS استفاده کنند (ایمیل: TLS یا STARTTLS؛ تقویم: HTTPS).
ایمیلبازه بررسی پیام‌های خوانده‌نشده (دقیقه) (UnreadCheckMinutes)۲ دقیقههر چقدر یک بار تعداد پیام‌های خوانده‌نشده بررسی می‌شود، زمانی که سرور ایمیل نمی‌تواند آن‌ها را به صورت خودکار ارسال کند.
ایمیلحداکثر حجم پیام (مگابایت) (MaxMessageSizeMB)۲۵ مگابایتمحدودیت حجم برای پیام‌های ارسالی و دریافتی.
تقویمارسال یادآوری‌ها (EnableReminders)روشنربات تقویم پیش از رویدادها یک پیام مستقیم ارسال می‌کند (۱۰ دقیقه پیش از رویدادهایی که آلارم اختصاصی ندارند).

برای اینکه کاربران بتوانند به جای رمز عبور، با حساب کاربری خود به صندوق‌های Gmail یا Microsoft 365 وارد شوند، یک کلاینت OAuth بسازید و فیلدهای Google یا Microsoft در برنامه ایمیل را پر کنید:

  • گوگل: یک کلاینت OAuth وب با API Gmail و دامنه https://mail.google.com/.
  • Microsoft: یک برنامه Entra ID با مجوزهای تفویض‌شده (delegated) IMAP.AccessAsUser.All، SMTP.Send، offline_access، openid، email و profile. به صورت پیش‌فرض، مستأجر (tenant) common است.
  • در هر دو مورد، نشانی بازگشت (redirect URI) https://chat.example.com/plugins/com.antimatterchat.mail/oauth/callback است (نشانی سایت شما).

Kanban، یادداشت‌ها، تخته سفید، نظرسنجی‌ها و پلی‌بوک‌ها

  • تخته کانبان (focalboard) در پنل کناری کنار مکالمه باز می‌شود، همان‌طور که پلی‌بوک‌ها نیز این کار را انجام می‌دهند. پیوندهای قدیمی به صفحات /kanban/… و /boards/… همان تخته یا کارت را در یک جامعه (community) باز می‌کنند. تنها تنظیم آن، فعال‌سازی تخته‌های به اشتراک‌گذاری عمومی (EnablePublicSharedBoards، غیرفعال)، به ویرایشگران تخته اجازه می‌دهد تخته را با هر کسی که پیوند را دارد به اشتراک بگذارند، بدون نیاز به ورود به سیستم.
  • یادداشت‌ها و نظرسنجی‌ها تنظیماتی ندارند.
  • تخته سفید: مدیران سیستم می‌توانند کتابخانه‌های شکل (فایل‌های Excalidraw با پسوند .excalidrawlib، حداکثر ۵ مگابایت برای هر فایل) را برای کل سرور در صفحه تنظیمات بارگذاری کنند. مدیران جامعه، کتابخانه‌های جامعه خود را مدیریت می‌کنند.
  • پلی‌بوک‌ها در پنل کناری باز می‌شود. پیوندهای قدیمی به صفحات /playbooks/… همان اجرا (run) یا پلی‌بوک را در یک جامعه باز می‌کنند. این برنامه چند تنظیم دارد که بیشتر ویژگی‌های آزمایشی هستند؛ مقادیر پیش‌فرض برای اکثر سرورها مناسب است.
  • میم‌ها: چه کسانی می‌توانند قالب میم اضافه کنند: همه (پیش‌فرض)، مدیران سیستم، یا هیچ‌کس (قالب‌های سفارشی غیرفعال) که افزودن قالب‌های جدید را متوقف می‌کند، در حالی که قالب‌های قبلاً اضافه‌شده همچنان قابل استفاده می‌مانند. مهمانان هرگز قالب اضافه نمی‌کنند. شخص اضافه‌کننده قالب و مدیران سیستم می‌توانند آن را حذف کنند.
  • کارهای در انتظار تنظیمات سروری ندارد.

GitHub، GitLab و Jira

این اپلیکیشن‌ها Antimatter را به میزبان کد و ردیاب مشکلات شما متصل می‌کنند. هر کدام به یک اپلیکیشن OAuth در طرف مقابل و یک وب‌هوک که به Antimatter اشاره می‌کند نیاز دارند. اپلیکیشن را فعال کنید، سپس دستور راه‌اندازی آن را در هر کانالی اجرا کنید تا شما را گام‌به‌گام راهنمایی کند: /github setup، /gitlab setup یا /jira setup.

اپلیکیشنآدرس URL هدایت OAuthآدرس 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 آدرس‌های URL وب‌هوک را نمایش می‌دهد.
استفاده از اپلیکیشن OAuth پیش‌ثبت‌شده را در اپلیکیشن‌های GitHub و GitLab غیرفعال نگه دارید: این گزینه به سرویسی از Mattermost تکیه دارد که Antimatter آن را ندارد و اپلیکیشن با فعال بودن آن از راه‌اندازی خودداری می‌کند. اپلیکیشن OAuth خودتان را ثبت کنید.

اپلیکیشن‌های GitHub و GitLab، راز وب‌هوک و کلید رمزنگاری خود را هنگام اولین ذخیره‌سازی تولید می‌کنند. اپلیکیشن GitHub می‌تواند به سازمان‌ها (GithubOrg) و اپلیکیشن GitLab به یک گروه (GitlabGroup) محدود شود؛ برای GitHub Enterprise یا GitLab خودمیزبان، آدرس URL پایه آن را تنظیم کنید.

Metrics

اپلیکیشن Metrics، شاخص‌های عملکرد سرور را در یک پایگاه داده سری زمانی کوچک داخل Antimatter جمع‌آوری می‌کند، بنابراین می‌توانید آن‌ها را دانلود کنید یا در یک بسته پشتیبانی گنجانده، بدون اجرای Prometheus. هنگام راه‌اندازی، نقطه پایانی شاخص‌های سرور (MetricsSettings.Enable) را فعال می‌کند. به عملیات مراجعه کنید.

نصب اپلیکیشن‌های دیگر

Antimatter اپلیکیشن‌های Mattermost (افزونه‌ها) را اجرا می‌کند. سه راه برای افزودن یکی:

  • از یک بازارچه از راه دور. فعال کردن Remote Marketplace (PluginSettings.EnableRemoteMarketplace) به‌طور پیش‌فرض غیرفعال است و URL بازار (PluginSettings.MarketplaceURL) خالی است: Antimatter از بازارچه Mattermost استفاده نمی‌کند و اگر پیکربندی از Mattermost هنوز آدرس آن را داشته باشد، آن را نادیده می‌گیرد. برای فهرست کردن برنامه‌های یک سرور بازارچه مورد اعتماد، این تنظیم را روشن کرده و URL آن را وارد کنید. نسخه‌های بازارچه از برنامه‌هایی که Antimatter ارائه می‌دهد (مکالمه، پلی‌بوک، Kanban و بقیه) پنهان می‌شوند تا نتوانند جایگزین نسخه‌های Antimatter شوند: اجازه جایگزینی نسخه‌های Antimatter با نسخه‌های بازار (PluginSettings.AllowMarketplaceToReplaceAntimatterPlugins) به‌طور پیش‌فرض غیرفعال است.
  • با بارگذاری یک بسته (.tar.gz). بارگذاری به‌طور پیش‌فرض غیرفعال است و کلید جداگانه‌ای در کنسول سیستم ندارد: مقدار AM_PLUGINSETTINGS_ENABLEUPLOADS=true را تنظیم کنید، سپس از گزینه‌ی افزونه آپلود در مدیریت افزونه‌ها استفاده کنید یا دستور amctl --local plugin add app.tar.gz را اجرا کنید.
  • از یک نشانی: amctl plugin install-url <url>، این هم با فعال بودن بارگذاری.

Antimatter امضای برنامه‌ها را با کلیدهای مورد اعتمادش بررسی می‌کند: کلید Antimatter، کلیدی که Mattermost, Inc. برای امضای برنامه‌های منتشرشده‌اش استفاده می‌کند (به همین دلیل برنامه‌های Mattermost که خودتان دانلود می‌کنید، نصب می‌شوند) و هر کلیدی که در PluginSettings.SignaturePublicKeyFiles اضافه کنید. اگر نیاز به امضای افزونه (PluginSettings.RequirePluginSignature، به‌طور پیش‌فرض غیرفعال) فعال باشد، برنامه‌های بدون امضا رد می‌شوند و بارگذاری غیرفعال می‌شود.

هر برنامه درون سرور با دسترسی کامل به داده‌های آن اجرا می‌شود. فقط برنامه‌هایی را نصب کنید که به آن‌ها اعتماد دارید.

برخی برنامه‌های ساخته‌شده برای نسخه‌های پولی Mattermost خودشان برای یک مجوز Mattermost بررسی می‌کنند و از اجرا خودداری می‌کنند؛ Antimatter برای آن‌ها ادعای داشتن مجوز نمی‌کند.