باندل شدہ ایپس

Antimatter کے Docker images میں ایک سیٹ ایپس (System Console میں plugins) شامل ہیں۔ یہ صفحہ ان کی فہرست دیتا ہے، بتاتا ہے کہ نصب کرنے کے بعد کون سی فعال ہیں، اور ہر ایک کے لیے ایڈمن کو درکار ترتیبات پر روشنی ڈالتا ہے۔

شامل ایپس

ایپس کو سسٹم کنسول میں پلگ انز کے طور پر درج کیا گیا ہے۔ یہ امیج میں (/antimatter/prepackaged_plugins) موجود ہیں اور Antimatter ایپ سائننگ کی کے ساتھ سائن شدہ ہیں، اس لیے یہ انٹرنیٹ کنکشن کے بغیر نصب ہو جاتے ہیں۔

ریلیس آرکائیو اور .deb اور .rpm پیکجز میں کم ایپس شامل ہیں: پیکجز اور آرکائیو میں موجود ایپس دیکھیں۔

ایپایپ idامیجنصب کے بعد فعال
Agents (AI)mattermost-aiدونوںہاں
Callscom.mattermost.callsدونوںہاں
کانبانfocalboardدونوںہاں
پلے بکس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 میں نئی ورژن موجود ہو تو اپ گریڈ ہو جاتی ہیں۔ اگر آپ کسی ایک کو غیر فعال کر دیں تو وہ غیر فعال ہی رہے گی: ڈیفالٹ صرف ان ایپس پر لاگو ہوتا ہے جن کا ذکر configuration میں ابھی نہیں ہوا۔ جو ایپس اپنا Mattermost id برقرار رکھتی ہیں (Agents، Calls، Kanban، Playbooks اور integrations) وہ Antimatter کی اپنی builds ہیں۔

ایپس کو فعال، غیر فعال اور ترتیب دیں

سسٹم کنسول › پلگ انز › پلگ ان مینجمنٹ پر جائیں۔ نصب شدہ پلگ ان کے تحت، ہر ایپ کے ساتھ فعال کریں یا غیر فعال کریں، ترتیبات اور ہٹائیں کے آپشنز موجود ہیں، اور اس کی حالت (Running, Not running, Failed to start…) دکھائی جاتی ہے۔ ہر ایپ کے ساتھ جو ترتیبات موجود ہیں، ان کے لیے سسٹم کنسول › پلگ انز کے تحت اپنی الگ صفحہ موجود ہے۔

جو بنڈل شدہ ایپس پہلے سے غیر فعال ہیں، وہ امیج کی اپنی کاپی سے نصب ہوتی ہیں: ایپ ریل کے اوپر اپنی تصویر پر کلک کریں اور ایپ مارکیٹ پلیس منتخب کریں (کلاسیک انٹرفیس میں یہ پروڈکٹ مینیو میں ہے)، ایپ تلاش کریں اور نصب کریں پر کلک کریں، پھر پلگ ان مینجمنٹ میں اسے فعال کریں۔ کمانڈ لائن سے:

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

دیگر commands: amctl plugin list، amctl plugin disable <id>، amctl plugin delete <id>۔

configuration کے ذریعے ایپس کو فعال کریں

کون سی ایپس فعال ہیں، یہ ترتیب PluginSettings.PluginStates ہے، جو ایپ آئی ڈیز کا ایک میپ ہے۔ آپ اس میں amctl کے ذریعے اندراجات ضم کر سکتے ہیں؛ جب خودکار Prepackaged پلگ انز کو فعال کریں آن (ڈیفالٹ) ہو، تو ایک فعال بنڈل شدہ ایپ اگلے شروع ہونے پر نصب ہو جاتی ہے:

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 میں پیش نہیں کیا جاتا۔ variable AM_PLUGINSETTINGS_PLUGINSTATES بھی کام کرتی ہے، لیکن یہ پورے map کو بدل دیتی ہے: ہر ایپ کی فہرست درج کریں جسے آپ فعال کرنا چاہتے ہیں۔

ایپ کی ترتیبات

ایپ کی ترتیبات PluginSettings.Plugins.<app id> کے تحت محفوظ کی جاتی ہیں، اور کیز چھوٹے حروف میں ہوتے ہیں۔ انہیں ایپ کے سسٹم کنسول پیج پر تبدیل کریں، یا amctl config patch کے ذریعے، جیسا کہ ترتیبات میں دکھایا گیا ہے۔ AM_PLUGINSETTINGS_PLUGINS ایک ہی بار میں تمام ایپس کی ترتیبات کو تبدیل اور لاک کر دیتا ہے، اس لیے اس سے پرہیز کریں۔

GIFs

GIFs ایپ ایموجی پکر میں GIF اور اسٹیکر کے لیے ایک ٹیب شامل کرتی ہے، جو Antimatter کے GIF سروس (gifs-server) پر مبنی ہے، جو Tenor API سے بات چیت کرتا ہے۔ سائٹ کا compose فائل سروس کو چلاتا ہے اور متغیرات کے ذریعے ایپ کی ترتیب کرتا ہے۔ اس کی ترتیبات، سسٹم کنسول › پلگ انز › GIFs میں:

ترتیبمتغیر (فیبیک)ڈیفالٹیہ کیا کرتا ہے
GIF سروس URLAM_GIFS_SERVICE_URLخالیسروس کا API بیس، مثال کے طور پر http://gifs:8080/v2۔ جب یہ خالی ہو تو GIFs بند رہتے ہیں۔
API کلیدAM_GIFS_API_KEYخالیسروس کے AM_GIFS_API_KEYS میں سے ایک۔
اپ لوڈ کیAM_GIFS_UPLOAD_KEYخالیسروس کے AM_GIFS_UPLOAD_KEYS میں سے ایک۔ اس سے لوگ پیکر کے ذریعے GIFs اور اسٹیکرز شامل کر سکتے ہیں اور اسی طریقے سے شامل کی گئی فائلوں کو حذف کر سکتے ہیں۔ اگر خالی چھوڑا جائے تو اپ لوڈز غیر فعال ہو جاتے ہیں۔
کون GIFs اور اسٹیکرز شامل کر سکتا ہےسسٹم ایڈمنزسسٹم ایڈمنز، یا سب۔ مہمان کبھی نہیں کر سکتے، جیسا کہ کسٹم ایموجی کے ساتھ۔ جو کچھ لوگ شامل کرتے ہیں وہ سب کے لیے دستیاب ہوتا ہے؛ جو شخص اسے شامل کرتا ہے اور سسٹم ایڈمنز اسے حذف کر سکتے ہیں۔
اسٹیکرز فعال کریںآناسٹیکر ٹیب دکھاتا ہے۔
محتوا فلٹردرمیانہزیادہ، درمیانہ، کم یا بند۔
میڈیا کو Antimatter کے ذریعے فراہم کریںآنبراؤزرز GIFs کو Antimatter سے لوڈ کرتے ہیں، جو انہیں سروس سے حاصل کرتا ہے۔ جب سروس صرف آپ کے اندرونی نیٹ ورک پر ہو تو اسے آن رکھیں۔
میڈیا URLسروس کا /media/جب میڈیا براہِ راست فراہم کیا جائے تو وہ کہاں ہے۔
کیش سائز (MB)64 MBایپ کا میموری کیش۔

اس ایپ کے لیے، متغیرات صرف فیبل بیک ہیں: سسٹم کنسول میں سیٹ کردہ قدر ان پر برتری حاصل کرتی ہے۔ اگر GIF پکر خالی رہے، تو اس پیج پر سروس URL اور API کی کا جائزہ لیں۔

جب GIF ایپ سیٹ اپ ہو رہی ہو، تو اس کا ٹیب بلٹ ان Giphy پکر (سسٹم کنسول › انضمامات › GIF › GIF پکر فعال کریں، ServiceSettings.EnableGifPicker) کی جگہ لیتا ہے۔

GIF سروس

سروس ہر چیز کو اپنے ڈیٹا ڈائریکٹری (/data، gifs وولوم) میں رکھتی ہے: ایک سرچ انڈیکس اور میڈیا۔ اس کے اہم متغیرات:

متغیرڈیفالٹیہ کیا کرتا ہے
AM_GIFS_API_KEYSکوئی نہیںکوما سے الگ کردہ API کیز۔ کی کے بغیر، API ہر اس شخص کے لیے کھلا ہے جو اس تک پہنچ سکتا ہے۔ متعدد کیز آپ کو انہیں گھمانے (rotate) کی اجازت دیتے ہیں۔
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سب سے بڑی اپ لوڈ شدہ فائل۔

اپنے GIFs کو بڑی تعداد میں شامل کرنے کے لیے، انہیں مانی فیسٹ کے ذریعے ایک ایسی ڈائریکٹری سے امپورٹ کریں جو ایک بار کے کنٹینر میں ماؤنٹ کی گئی ہو:

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 فیلڈز بھریں:

  • Google: Gmail API اور اسکوپ https://mail.google.com/ کے ساتھ ایک ویب OAuth کلائنٹ۔
  • Microsoft: delegated permissions IMAP.AccessAsUser.All، SMTP.Send، offline_access، openid، email اور profile کے ساتھ ایک Entra ID ایپ۔ ٹیننٹ ڈیفالٹ طور پر common ہوتا ہے۔
  • دونوں میں، ری ڈائریکٹ URI https://chat.example.com/plugins/com.antimatterchat.mail/oauth/callback (آپ کے سائٹ URL) ہے۔

Kanban، Notes، Whiteboard، Polls اور Playbooks

  • 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 کی طرف اشارہ کرنے والا ایک webhook درکار ہے۔ ایپ کو فعال کریں، پھر کسی بھی چینل میں اس کی سیٹ اپ کمانڈ چلائیں، جو آپ کو مرحلہ وار رہنمائی دے گی: /github setup، /gitlab setup یا /jira setup۔

ایپOAuth redirect 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 URLs کو پرنٹ کرتا ہے۔
GitHub اور GitLab ایپس میں Use Preregistered OAuth Application کو بند رکھیں: یہ Mattermost کی ایک سروس پر انحصار کرتا ہے جس کا Antimatter کے پاس نہیں ہے، اور ایپ اسے آن کرنے پر شروع کرنے سے انکار کر دیتی ہے۔ اپنی اپنی OAuth ایپلیکیشن رجسٹر کریں۔

GitHub اور GitLab ایپس اپنا webhook secret اور encryption key پہلی سیو پر جنریٹ کرتی ہیں۔ GitHub ایپ کو تنظیموں (GithubOrg) تک محدود کیا جا سکتا ہے اور GitLab ایپ کو ایک گروپ (GitlabGroup) تک؛ GitHub Enterprise یا self-hosted GitLab کے لیے اس کا base URL سیٹ کریں۔

میٹرکس

Metrics ایپ سرور کے کارکردگی کے میٹرکس کو Antimatter کے اندر ایک چھوٹے time-series ڈیٹا بیس میں جمع کرتی ہے، تاکہ آپ انہیں ڈاؤن لوڈ کر سکیں یا Prometheus چلائے بغیر سپورٹ پیکٹ میں شامل کر سکیں۔ جب یہ شروع ہوتی ہے، تو یہ سرور کے metrics endpoint (MetricsSettings.Enable) کو آن کر دیتی ہے۔ دیکھیں Operations۔

دیگر ایپس کی تنصیب

Antimatter Mattermost ایپس (پلیگن) چلاتا ہے۔ اسے شامل کرنے کے تین طریقے ہیں:

  • ریموٹ مارکیٹ پلیس سے۔ ریموٹ مارکیٹ پلیس کو فعال کریں (PluginSettings.EnableRemoteMarketplace) پہلے سے غیر فعال ہے، اور مارکیٹ پلیس URL (PluginSettings.MarketplaceURL) خالی ہے: Antimatter Mattermost کی مارکیٹ پلیس کا استعمال نہیں کرتا، اور اگر Mattermost کی کوئی ترتیب اس پتے کو رکھتی ہو تو اسے نظرانداز کر دیتا ہے۔ کسی ایسی مارکیٹ پلیس سرور کی ایپس کو فہرست میں دیکھنے کے جس پر آپ اعتماد کرتے ہیں، اس ترتیب کو آن کریں اور اس کا URL سیٹ کریں۔ Antimatter کے ساتھ شامل ایپس (Calls, Playbooks, Kanban وغیرہ) کی اس مارکیٹ پلیس کی بلڈز چھپی ہوئی ہیں، تاکہ وہ 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 ان کے لیے اس کا دعویٰ نہیں کرتا۔