সংযুক্ত অ্যাপস
Antimatter-এর Docker ইমেজগুলিতে একটি অ্যাপসের সেট (System Console-এ প্লাগইন হিসেবে) থাকে। এই পেজে সেগুলোর তালিকা দেওয়া আছে, ইনস্টলের পরে কোনগুলো চালু থাকে এবং প্রতিটি অ্যাপের জন্য অ্যাডমিনকে যেসব সেটিংস করতে হবে তা বর্ণনা করা হয়েছে।
সংযুক্ত অ্যাপস
সিস্টেম কনসোলে অ্যাপগুলো প্লাগইনসমূহ হিসেবে তালিকাভুক্ত। এগুলো ইমেজের (/antimatter/prepackaged_plugins) মধ্যে রয়েছে এবং Antimatter অ্যাপ সাইনিং কী দিয়ে স্বাক্ষরিত, তাই ইন্টারনেট সংযোগ ছাড়াই এগুলো ইনস্টল করা যায়।
রিলিজ আর্কাইভ এবং .deb ও .rpm প্যাকেজে কম সংখ্যক অ্যাপ রয়েছে: প্যাকেজ আর আর্কাইভে থাকা অ্যাপসমূহ দেখুন।
| অ্যাপ | অ্যাপ আইডি | ইমেজ | ইনস্টলের পরে চালু |
|---|---|---|---|
| AI chat | mattermost-ai | উভয় | হ্যাঁ |
| Calls | com.mattermost.calls | উভয় | হ্যাঁ |
| GitHub | github | উভয় | না |
| GitLab | com.github.manland.mattermost-plugin-gitlab | উভয় | না |
| Jira | jira | উভয় | না |
| মেট্রিকস | com.mattermost.mattermost-plugin-metrics | উভয় | না |
| Voice Channels | 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 | হ্যাঁ |
| GIFs | com.antimatterchat.gifs | antimatter-next | হ্যাঁ |
| Memes | memes | antimatter-next | না |
| করণীয় | com.mattermost.plugin-todo | antimatter-next | না |
ডিফল্টভাবে চালু থাকা অ্যাপসমূহ প্রতিবার শুরুতে ইনস্টল করা হয় যদি সেগুলো আগে থেকে ইনস্টল না থাকে, অথবা আপগ্রেড করা হয় যদি ইমেজে একটি নতুন সংস্করণ থাকে। আপনি যদি কোনোটি বন্ধ করেন, তবে তা বন্ধই থাকবে: ডিফল্টটি শুধুমাত্র সেই অ্যাপসমূহের ক্ষেত্রে প্রযোজ্য যা কনফিগারেশনে এখনও উল্লেখ করা হয়নি। যেসব অ্যাপ তাদের Mattermost আইডি বজায় রাখে (AI chat, Calls এবং ইন্টিগ্রেশনসমূহ) সেগুলো Antimatter-এর নিজস্ব বিল্ড।
Kanban (focalboard) এবং Playbooks (playbooks) আর সার্ভার বা কোনো ইমেজের সাথে বান্ডেল করা থাকে না: আপনি যেটি চান সেটি তার নিজস্ব GitHub রিলিজ থেকে ইনস্টল করুন (দেখুন Apps in the packages and the archive), যেমনটি ডিফল্টভাবে বান্ডেল করা না থাকা অন্য যেকোনো অ্যাপের ক্ষেত্রে করা হয়। যে সার্ভারে আগে থেকেই একটি ইনস্টল করা আছে, আপগ্রেডের পরেও তা থাকবে। উভয়ই Antimatter-এর নিজস্ব বিল্ড হিসেবে থাকবে: Marketplace-এর ভ্যানিলা বিল্ডসমূহ কখনোই Antimatter-এর বিল্ডসমূহকে প্রতিস্থাপন করবে না।
অ্যাপস চালু, বন্ধ এবং কনফিগার করা
সিস্টেম কনসোল › প্লাগইনসমূহ › প্লাগইন ম্যানেজমেন্ট-এ যান। ইনস্টল করা প্লাগইনসমূহ-এর নিচে, প্রতিটি অ্যাপের জন্য সক্রিয় করুন বা নিষ্ক্রিয় করুন, সেটিংস এবং সরান অপশন রয়েছে, এবং এটি তার অবস্থা (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
অন্যান্য কমান্ড: 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>-এর নিচে সংরক্ষিত থাকে, এবং কীগুলো লোয়ার কেসে থাকে। এগুলো অ্যাপের System Console পেজে পরিবর্তন করুন, অথবা Configuration-এ দেখানো মতো amctl config patch ব্যবহার করে পরিবর্তন করুন। AM_PLUGINSETTINGS_PLUGINS একসাথে সব অ্যাপের সেটিংস প্রতিস্থাপন করে এবং সবগুলোকে লক করে দেয়, তাই এটি এড়িয়ে চলুন।
GIFs
GIF অ্যাপটি ইমোজি পিকারে GIF এবং স্টিকার ট্যাব যোগ করে, যা Antimatter-এর GIF সার্ভিস (gifs-server) দ্বারা সমর্থিত, যা Tenor API ব্যবহার করে। সাইটের কম্পোজ ফাইল সার্ভিসটি চালু করে এবং ভেরিয়েবলের মাধ্যমে অ্যাপটি কনফিগার করে। এর সেটিংস, সিস্টেম কনসোল › প্ল্যাগইনসমূহ › 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 লোড করে, যা সার্ভিস থেকে সেগুলো আনে। সার্ভিসটি শুধুমাত্র আপনার অভ্যন্তরীণ নেটওয়ার্কে থাকলে এটি চালু রাখুন। | |
| মিডিয়া URL | সার্ভিসের /media/ | সরাসরি পরিবেশিত হলে মিডিয়া কোথায় থাকে। | |
| ক্যাশ সাইজ (MB) | 64 MB | অ্যাপের মেমরি ক্যাশ। |
এই অ্যাপের জন্য, ভেরিয়েবলগুলো শুধুমাত্র ফলব্যাক: System Console-এ সেট করা মান এগুলোর চেয়ে অগ্রাধিকার পায়। যদি 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 এটি বন্ধ করে দেয়। কম্পোজ ফাইলটি 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) | ২ মিনিট | যখন মেইল সার্ভার অপঠিত সংখ্যা পুশ করতে পারে না, তখন কতবার অপঠিত সংখ্যা পরীক্ষা করা হয়। |
| মেইল | সর্বোচ্চ মেসেজের আকার (MB) (MaxMessageSizeMB) | ২৫ MB | পাঠানো এবং পড়া মেসেজগুলির আকার সীমা। |
| ক্যালেন্ডার | রিমাইন্ডার পাঠান (EnableReminders) | অন | ক্যালেন্ডার বট ইভেন্টের আগে একটি ডাইরেক্ট মেসেজ পাঠায় (নিজস্ব অ্যালার্ম ছাড়া এমন ইভেন্টগুলির জন্য ১০ মিনিট আগে)। |
ব্যক্তিদের পাসওয়ার্ডের পরিবর্তে তাদের অ্যাকাউন্ট ব্যবহার করে Gmail বা Microsoft 365 মেইলবক্সে সাইন ইন করার অনুমতি দিতে, একটি OAuth ক্লায়েন্ট তৈরি করুন এবং মেইল অ্যাপের Google বা Microsoft ফিল্ডগুলি পূরণ করুন:
- Google: Gmail API এবং
https://mail.google.com/স্কোপ সহ একটি Web OAuth ক্লায়েন্ট। - Microsoft:
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 and Polls have no settings.
- Whiteboard: system administrators can upload shape libraries (Excalidraw
.excalidrawlibfiles, up to 5 MB each) for the whole server in its settings page. Community admins manage their own community's libraries. - Playbooks সাইড প্যানেলে খোলে।
/playbooks/…পেজের পুরনো লিংকগুলো কমিউনিটিতে একই রান বা প্লেবুক খোলে। এর কিছু সেটিং আছে, বেশিরভাগই পরীক্ষামূলক ফিচার; ডিফল্ট মানগুলো বেশিরভাগ সার্ভারের জন্য উপযুক্ত। - Memes: কে মেম টেমপ্লেট যোগ করতে পারেন: সবাই (ডিফল্ট), সিস্টেম অ্যাডমিন, অথবা কেউ না (কাস্টম টেমপ্লেট বন্ধ), যা নতুন টেমপ্লেট যোগ করতে বাধা দেয় যদিও আগে যোগ করা টেমপ্লেটগুলো ব্যবহারযোগ্য থাকে। অতিথিরা কখনোই টেমপ্লেট যোগ করতে পারে না। যিনি টেমপ্লেট যোগ করেছেন এবং সিস্টেম অ্যাডমিনরা এটি মুছে ফেলতে পারেন।
- Todo has no server settings.
GitHub, GitLab এবং Jira
These apps link Antimatter to your code hosting and issue tracker. Each needs an OAuth application on the other side and a webhook pointing back at Antimatter. Enable the app, then run its setup command in any channel, which guides you step by step: /github setup, /gitlab setup or /jira setup.
| অ্যাপ | OAuth redirect 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> or /jira instance install cloud-oauth <url>; /jira webhook prints the webhook URLs. | |
The GitHub and GitLab apps generate their webhook secret and encryption key on first save. The GitHub app can be limited to organisations (GithubOrg) and the GitLab app to a group (GitlabGroup); for GitHub Enterprise or a self-hosted GitLab, set its base URL.
মেট্রিকস
The Metrics app collects the server's performance metrics into a small time-series database inside Antimatter, so you can download them or include them in a support packet without running Prometheus. When it starts, it turns on the server's metrics endpoint (MetricsSettings.Enable). See Operations.
Installing other apps
Antimatter runs Mattermost apps (plugins). Three ways to add one:
- রিমোট মার্কেটপ্লেস থেকে। রিমোট মার্কেটপ্লেস সক্রিয় করুন (
PluginSettings.EnableRemoteMarketplace) ডিফল্টভাবে বন্ধ থাকে, এবং মার্কেটপ্লেস URL (PluginSettings.MarketplaceURL) খালি থাকে: Antimatter Mattermost-এর মার্কেটপ্লেস ব্যবহার করে না, এবং Mattermost-এর কনফিগারেশনে যদি এটি থাকে তাও উপেক্ষা করে। আপনার বিশ্বাসিত একটি মার্কেটপ্লেস সার্ভারের অ্যাপগুলো তালিকাভুক্ত করতে, সেটিংটি চালু করুন এবং এর URL সেট করুন। Antimatter-এর সাথে যেসব অ্যাপ সরবরাহ করা হয় (Calls, Playbooks, Kanban এবং অন্যান্য) তাদের মার্কেটপ্লেস বিল্ডগুলো লুকানো থাকে, তাই তারা Antimatter-এর অ্যাপগুলিকে প্রতিস্থাপন করতে পারে না: Antimatter প্ল্যাগইনের মার্কেটপ্লেস বিল্ড অনুমোদন (PluginSettings.AllowMarketplaceToReplaceAntimatterPlugins) ডিফল্টভাবে বন্ধ থাকে। - বান্ডেল আপলোড করে (
.tar.gz)। আপলোড ডিফল্ট অবস্থায় বন্ধ থাকে এবং System Console-এ এর কোনো সুইচ নেই:AM_PLUGINSETTINGS_ENABLEUPLOADS=trueসেট করুন, তারপর Plugin Management-এ প্লাগইন আপলোড করুন ব্যবহার করুন, অথবা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 তাদের জন্য এমন লাইসেন্স থাকার দাবি করে না।