
به اشتراک بگذارید

به اشتراک بگذارید
پیامرسان سازمانی روی سرور خودتان یعنی متن پیامها، فایلهای پیوست و جدول کاربران تیم در دیتابیسی بماند که کلید آن دست شماست. سه پروژه متنباز این کار را انجام میدهند: Mattermost، Rocket.Chat و Matrix با سرور Synapse. تفاوت اصلی این سه، فهرست امکانات نیست؛ لایسنس نسخه رایگان، دامنهای که مستندات برای آن نسخه تعریف کرده و تعداد سرویسی است که باید همیشه زنده نگه دارید.
| گزینه | لایسنس و دامنه نسخه رایگان | منابع اعلامشده و واحد سنجش آن | ضعفی که خود مستندات میگوید |
|---|---|---|---|
| پروژه Mattermost. | نسخه Team زیر MIT؛ دامنه آن «زیر ۲۵۰ کاربر فعال» تعریف شده. | برای ۱ تا ۱۰۰۰ کاربر ثبتشده (registered): ۱ vCPU و ۲ گیگابایت رم. | رمزنگاری سرتاسری پیام در فهرست رسمی نیامده؛ حالت رایگان Entry سقف ۱۰ هزار پیام و تماس ۴۰ دقیقهای دارد. |
| پروژه Rocket.Chat. | نسخه Community تا ۱۰۰ کاربر همزمان؛ Starter تا ۵۰ کاربر با امکانات پریمیوم. | برای اپ تا ۵۰۰ کاربر همزمان (concurrent): ۲ vCPU و ۴ گیگابایت رم، بهعلاوه منابع جدا برای MongoDB. | مستندات، Community را به استفاده غیرعملیاتی کوچک محدود میکند. |
| پروژه Matrix با سرور Synapse. | دولایسنسی: AGPLv3 یا لایسنس تجاری Element؛ دامنه کاربر تعریف نشده. | جدول سایزینگ بر حسب کاربر منتشر نشده؛ تنها عدد اعلامشده «دستکم ۱ گیگابایت رم آزاد برای عضویت در اتاقهای عمومی بزرگ» است. | رشد سرویس به worker میرسد و worker بدون Redis و PostgreSQL بالا نمیآید. |
💡 سه عدد ستون منابع را با هم مقایسه نکنید.
واحد سنجش هر سه ستون بالا متفاوت است: کاربر ثبتشده، کاربر همزمان، و یک حداقل مشروط. برای Synapse عدد قابل مقایسهای در دست نیست و تنها راه، سنجیدن نمونه خودتان است.
✅ اول تعداد کاربر همزمان و الزام رمزنگاری سرتاسری را مشخص کنید.
✅ هر سه گزینه روی یک سرور مجازی ایران با IP مستقیم اجرا میشوند؛ وبداده این سرورها را در دیتاسنتر تهران و روی شبکه رسپینا میزبانی میکند.
جدولهای مقایسهای که در نتایج جستوجو میبینید بیشتر فهرست امکانات را کنار هم میچینند. درباره چیزی که بعد از نصب دردسر میسازد ساکتاند: دامنه رسمی نسخه رایگان، تعداد سرویسی که باید مانیتور شود و کاری که رمزنگاری سرتاسری از دست شما میگیرد. این مقاله از همان جا شروع میکند و هر جا مستندات عددی ندارد، همین را میگوید.
📌 آنچه در این مقاله میخوانید.
◀️ این سرویس چیست و چه چیزی به سرور خودتان منتقل میشود؟
◀️ مقایسه لایسنس و امکانات سه گزینه.
◀️ منابع سختافزاری و پیشنیازهای نصب.
◀️ انتخاب نهایی بر اساس اندازه تیم و نیاز امنیتی.

سرویس چت تیمی که خودتان میزبانش هستید سه چیز را از ابر به سرور شما میآورد: متن پیامها، فایلهای پیوست و جدول کاربران. سه مسئولیت هم با آن میآید: بهروزرسانی امنیتی، بکاپ دیتابیس و پاسخگویی به قطعی.
صفحه نسخههای Mattermost نسخه Team را یک باینری لینوکسی در کنار PostgreSQL توصیف میکند؛ یعنی دو سرویس برای نگهداشتن. Rocket.Chat برنامهای روی Node.js است که به MongoDB تکیه دارد و برای دسترسپذیری بالا replica set سهعضوی توصیه شده؛ در آن حالت چهار سرویس دارید. Synapse در حالت monolith هم همان دو سرویس است. Matrix اما جنس دیگری دارد: یک پروتکل، با Synapse بهعنوان سرور مرجع و Element بهعنوان کلاینتِ همان شرکتِ سازنده. سروری که بالا میآورید با سرورهای دیگر همان پروتکل هم گفتگو میکند و همین، سطح حمله شما را گستردهتر میکند.
جمله «همهچیز روی سرور ما میماند» دقیق نیست؛ دقیقتر این است که محتوای پیام و فایل روی سرور شما میماند. نمونه روشنش نوتیفیکیشن موبایل است: نسخه Community در Rocket.Chat سقف ۱۰ هزار نوتیفیکیشن push در ماه دارد و تماس تصویری آن فقط با Jitsi و BigBlueButton. حالت رایگان Entry در Mattermost هم همین سقف را دارد.
🔸 نکته فنی: فایلها را روی دیسک سیستم نگذارید.
صفحه سیستم موردنیاز Rocket.Chat استفاده از object storage مثل Amazon S3 یا MinIO را توصیه و GridFS را رد میکند. مثالش هم روشن است: ۱۰۰ کاربر با ماهی ۵ مگابایت آپلود، در سال حدود ۶ گیگابایت. در Mattermost سقف پیشفرض فایل 104857600 بایت (۱۰۰ مبیبایت) است؛ عدد ۵۰ مگابایتِ جدول سایزینگ فرض همان جدول است، نه پیشفرض محصول.
در انتخاب یک پیامرسان سازمانی، لایسنس و دامنه تعریفشده نسخه رایگان بیشتر از فهرست امکانات تعیینکننده است. نسخه Team در Mattermost زیر MIT منتشر میشود، اما مستندات آن را زیر ۲۵۰ کاربر فعال تعریف کرده است. Rocket.Chat نسخه Community را به ۱۰۰ کاربر همزمان و استفاده غیرعملیاتی محدود کرده و Synapse دولایسنسی است: AGPLv3 یا لایسنس تجاری Element.
| گزینه | دامنه رسمی نسخه رایگان | مدیریت دسترسی و فدراسیون | رمزنگاری سرتاسری |
|---|---|---|---|
| پروژه Mattermost. | نسخه Team زیر MIT و «زیر ۲۵۰ کاربر فعال»؛ برای بار دولتی یا تجاری حساس توصیه نشده. حالت Entry با لایسنس تجاری. | پشتیبانی SAML و AD/LDAP در طرح Professional؛ SSO از نسخه Team حذف میشود. | در صفحه گزینههای رمزنگاری فقط TLS، رمزنگاری دیسک و رمزنگاری سمت سرور S3 آمده؛ رمزنگاری سرتاسری پیام ذکر نشده. |
| پروژه Rocket.Chat. | نسخه Community «فقط پیامرسانی پایه» و به گفته مستندات نامناسب برای کار عملیاتی؛ Starter تا ۵۰ کاربر. | در Starter، AD/LDAP و SSO و MFA هست؛ در Community فقط مدیریت هویت پایه. | در همان صفحه زیر طرح Starter آمده، نه زیر Community؛ و پیام رمزنگاریشده «طبق طراحی» قابل جستوجو نیست. |
| پروژه Matrix با سرور Synapse. | استفاده رایگان زیر AGPLv3 بدون سقف اعلامشده. | فدراسیون پیشفرض با همه سرورها باز است؛ با federation_domain_whitelist در homeserver.yaml محدود میشود و پیشفرض آن null است. | در خود پروتکل Matrix هست و در Element از تنظیمات اتاق روشن میشود؛ اتاقبهاتاق، نه سراسری. |
این دو عبارت در مستندات یک معنا ندارند و اشتباه گرفتنشان گران تمام میشود. سقف نسخه Community در Rocket.Chat «تا ۱۰۰ کاربر همزمان» است، یعنی کاربران متصل در یک لحظه. سقف طرح Starter اما «تا ۵۰ کاربر» است و به کل کاربران اضافهشده اشاره دارد؛ رسیدن به آن، دادههای موجود را دستنخورده میگذارد و فقط افزودن کاربر جدید را میبندد. جدول Mattermost بر پایه «کاربر ثبتشده» بسته شده و جدول Rocket.Chat بر پایه «کاربر همزمان». پس تیمی ۴۰۰ نفره با ۸۰ کاربر همزمان از دامنه Starter بیرون میزند، اما زیر سقف Community میماند.
رمزنگاری سرتاسری رایگان به دست نمیآید و بخشی از قابلیتها را با خودش میبرد. در Matrix بخشی از خود پروتکل است و راهنمای Element میگوید رمزنگاری را از تنظیمات اتاق فعال میکنید. در Rocket.Chat هم هست، اما در صفحه طرحها زیر Starter فهرست شده، نه زیر Community. در Mattermost ماجرا متفاوت است: صفحه رسمی رمزنگاری سه لایه را نام میبرد، یعنی TLS با AES-256، رمزنگاری دیسک با LUKS یا BitLocker، و رمزنگاری سمت سرور در S3. همان صفحه میگوید رمزنگاری درون دیتابیس ارائه نمیشود و رمزنگاری سرتاسری پیام در آن فهرست نیست.
⚠️ رمزنگاری سرتاسری، جستوجو و باتها را با خود میبرد.
پرسشهای متداول رسمی Rocket.Chat صریح میگوید پیام رمزنگاریشده «طبق طراحی» قابل جستوجو نیست و بیشتر باتها به آن دسترسی ندارند، مگر مخصوص E2EE ساخته شده باشند. اگر گردشکار تیم به جستوجوی تاریخ پیام یا بات اعلان CI تکیه دارد، رمزنگاری را اتاقبهاتاق فعال کنید، نه برای کل فضای کاری.

منابع یک پیامرسان سازمانی را از مستندات خود پروژه بردارید و واحد سنجش هر عدد را هم با آن. Mattermost تا ۱۰۰۰ کاربر ثبتشده ۱ vCPU و ۲ گیگابایت رم اعلام کرده و Rocket.Chat تا ۵۰۰ کاربر همزمان ۲ vCPU و ۴ گیگابایت رم. Synapse جدول سایزینگ ندارد.
| گزینه | پردازنده و رم اعلامشده | دیتابیس و نسخه | سیستمعامل و زمان اجرا |
|---|---|---|---|
| پروژه Mattermost. | تا ۱۰۰۰ کاربر ثبتشده: ۱ vCPU و ۲ گیگابایت رم. تا ۲۰۰۰ کاربر: ۲ vCPU و ۴ گیگابایت رم (با فرض سقف ۵۰ مگابایتی فایل در خود جدول). | نسخه PostgreSQL 15.0 و بالاتر و معادل Aurora. MySQL 8.0.12 از نسخه 11 منسوخ است و MariaDB پشتیبانی نمیشود. | اوبونتو 22.04+، دبیان Bookworm+، CentOS Stream 9+، RHEL و Oracle Linux 9+؛ پردازنده ۶۴ بیتی x86. |
| پروژه Rocket.Chat. | تا ۵۰۰ کاربر همزمان: ۲ vCPU و ۴ گیگابایت رم و ۲۰ گیگابایت فضا. بالای ۵۰۰ کاربر همزمان (ردیف HA): ۴ vCPU و ۸ تا ۱۲ گیگابایت رم. | نسخه MongoDB 8.0 و بالاتر برای Rocket.Chat 8.x؛ replica set سهعضوی «بهشدت توصیه» شده. | نیازمند Node.js نسخه 22.22.3 و بالاتر یا 24.15.0 و بالاتر؛ در Docker و Helm همراه ایمیج میآید. |
| پروژه Matrix با سرور Synapse. | عددی بر حسب کاربر منتشر نشده؛ تنها قید رم مشروط است: «دستکم ۱ گیگابایت رم آزاد اگر میخواهید به اتاقهای عمومی بزرگ بپیوندید». | برای محیط عملیاتی PostgreSQL توصیه شده و SQLite نباید در سرور عملیاتی به کار برود؛ نسخه حداقلی به سیاست Dependency Deprecation واگذار شده. | سیستم سازگار با POSIX؛ ویندوز بومی پشتیبانی رسمی ندارد و WSL پیشنهاد شده؛ Python نسخه 3.10 تا 3.13. |
هر سه پروژه مسیر مقیاس خودشان را دارند و هر سه هزینه عملیاتی اضافه میکنند. Synapse برای نمونههای کوچک حالت monolith را توصیه میکند و مقیاس بزرگتر را با worker. اما worker فقط روی PostgreSQL کار میکند، به Redis نیاز دارد و «در حال توسعه فعال و در معرض تغییر» است. Mattermost برای بیش از ۲۰۰۰ کاربر عدد نمیدهد و تست بار با mattermost-load-test-ng را پیشنهاد میکند؛ دسترسپذیری بالا تنها در Enterprise است. مسیر Rocket.Chat برای بالای ۵۰۰۰ کاربر همزمان، میکروسرویس روی Kubernetes است. در هر سه، ترمینیشن TLS و توزیع بار کار شما است.
🔶 نکته درباره بستر اجرا.
هر سه گزینه فقط یک ماشین لینوکسی با IP مستقیم میخواهند. سرور مجازی ایران وبداده IPv4 و IPv6 دارد و IP آن از اینترنت بینالملل هم در دسترس است. از پنل اختصاصی اسنپشات، نصب مجدد سیستمعامل و ارتقای منابع ممکن است. پیش از هر ارتقای نسخه یک اسنپشات بگیرید تا برگشتن از مهاجرت ناموفق ساده باشد. برای انتخاب توزیع هم راهنمای انتخاب سیستمعامل سرور مجازی را ببینید.

هیچکدام از این سه پروژه در همه سناریوها برنده نیست. انتخاب به سه پرسش بسته است: چند کاربر همزمان دارید، آیا رمزنگاری سرتاسری الزام شماست و چند سرویس را میتوانید جدی مانیتور و بکاپ کنید.
سه عدد در مستندات رسمی هست که در جدولهای مقایسه نمیبینید. هر نسخه Rocket.Chat شش ماه پشتیبانی میشود؛ یعنی چرخه ارتقا ششماهه است، نه سالانه. راهنمای PostgreSQL در Synapse هشدار میدهد پس از مهاجرت از SQLite، حجم دیتابیس ۲۵ تا ۱۰۰ درصد بیشتر میشود. و صفحه جستوجوی Mattermost محدودیتهایش را فهرست کرده: نشانی اینترنتی و نشانی IP نتیجه برنمیگردانند، و هشتگ یا نام کاربری دارای خط تیره هم نه.
ظرفیت سرور را با جدول منابع بالا انتخاب کنید؛ راهنمای انتخاب سرور مجازی لینوکس معیارهای آن را کنار هم گذاشته است. هر سه پروژه صفحه بکاپ خودشان را دارند و چیز متفاوتی میخواهند. صفحه بکاپ Synapse دقیقترین است:
# Synapse. Official backup page: pg_dump, one-time-keys table excluded.
sudo -u postgres pg_dump -Fc --exclude-table-data e2e_one_time_keys_json synapse > synapse.dump
sudo -u postgres pg_restore -d synapse < synapse.dump
# Rocket.Chat. MongoDB Backup and Restore page.
mongodump --uri="mongodb://127.0.0.1:27017"
mongorestore dump/
کنار دیتابیس، فایل تنظیمات و کلیدها را هم بردارید. در Synapse فایل homeserver.yaml و کلید امضای سرور؛ اگر کلید را نگه ندارید، Synapse در بازگردانی کلید تازه میسازد و باید کلید عمومی قدیمی را در old_signing_keys بگذارید. صفحه بکاپ Mattermost کل پوشه config را میخواهد (گواهیهای SAML همانجا هستند) و برای فضای فایل پوشه ./data را. دو قید دیگر از همان صفحات:
local_content را بردارید، چون ممکن است تنها نسخه آن فایلها باشد؛ remote_content کش است.پرسشهایی که پیش از نصب بیشتر از همه پرسیده میشود در ادامه آمده است. پاسخها از مستندات رسمی همان پروژهها گرفته شده، همراه با محدودیتهایشان.
از نظر منابع، نسخه Team در Mattermost؛ برای تا ۱۰۰۰ کاربر ثبتشده ۱ vCPU و ۲ گیگابایت رم اعلام شده و فقط دو سرویس باید زنده بماند. طرح Starter در Rocket.Chat هم برای ۲۰ نفر رایگان است، اما MongoDB به گردن شما میافتد.
صفحه طرحهای رسمی، نسخه Community را «تا ۱۰۰ کاربر همزمان» و طرح Starter را «تا ۵۰ کاربر» اعلام کرده است. همان صفحه Community را «فقط پیامرسانی پایه» و مناسب استفاده غیرعملیاتی کوچک میداند، نه استقرار عملیاتی سازمانی.
سقف فنی اعلام نشده. اما صفحه نسخهها دامنه آن را «تیم کوچک، علاقهمند یا استفاده شخصی زیر ۲۵۰ کاربر فعال» تعریف کرده و برای بار دولتی یا تجاری حساس توصیهاش نمیکند.
صفحه رسمی گزینههای رمزنگاری Mattermost سه لایه را نام میبرد: TLS با AES-256، رمزنگاری دیسک و رمزنگاری سمت سرور در S3. همان صفحه میگوید رمزنگاری درون دیتابیس ارائه نمیشود و رمزنگاری سرتاسری پیام در آن فهرست نیامده. اگر این ویژگی الزام شماست، Matrix یا طرح Starter را بررسی کنید.
راهنمای نصب رسمی Synapse بازه Python 3.10 تا 3.13 را اعلام کرده است. تنها قید رم مشروط است: «دستکم ۱ گیگابایت رم آزاد اگر میخواهید به اتاقهای عمومی بزرگ بپیوندید». جدولی بر حسب تعداد کاربر منتشر نشده، پس ظرفیت را روی نمونه خودتان بسنجید.
صفحه سیستم موردنیاز، replica set سهعضوی را «بهشدت توصیه» میکند تا اگر یک عضو از کار افتاد عضو دیگری جایش را بگیرد. در محیط آزمایشی عملی است؛ در محیط عملیاتی یعنی هر خرابی MongoDB قطعی کامل است.
مستندات تنظیمات Synapse کلید federation_domain_whitelist را در homeserver.yaml برای همین کار دارد: فهرستی از دامنههای مجاز. فهرست خالی یعنی رد همه سرورها و مقدار null یعنی مجاز بودن همه؛ پیشفرض null است.
در نخستین سطح منابع جدول Rocket.Chat، اپ ۲۰ گیگابایت و MongoDB ۱۰ گیگابایت فضا دارد و مثال آپلود کاربران حدود ۶ گیگابایت در سال اضافه میکند. در Synapse هم مهاجرت از SQLite به PostgreSQL حجم دیسک را ۲۵ تا ۱۰۰ درصد بالا میبرد.
جمعبندی؛ انتخاب بر پایه دامنه رسمی و الزام رمزنگاری انتخاب یک پیامرسان سازمانی را با فهرست امکانات شروع نکنید. اول دامنهای را ببینید که سازنده برای نسخه رایگان نوشته است. نسخه Team زیر MIT است اما «زیر ۲۵۰ کاربر فعال». نسخه Community تا ۱۰۰ کاربر همزمان و بهگفته مستندات نامناسب برای کار عملیاتی، Starter تا ۵۰ کاربر، و Synapse زیر AGPLv3 بدون سقف اعلامشده. دوم تعداد سرویسی که باید زنده بماند: دو سرویس در Mattermost و Synapse تکپردازهای، چهار سرویس در Rocket.Chat. سوم رمزنگاری سرتاسری: در Matrix بخشی از پروتکل است، در Rocket.Chat زیر Starter فهرست شده، و در فهرست رسمی رمزنگاری Mattermost نیامده. یک هشدار هم بماند: ستون منابع این سه با واحدهای متفاوتی نوشته شده و Synapse جدول سایزینگ ندارد، پس عددها را جایگزین تست نکنید. قدم بعدی: سروری با منابع جدول بالا بگیرید، یک بازگردانی بکاپ را تست کنید و تنها بعد از آن تیم را منتقل کنید.
🚀 سرور را پیش از نصب انتخاب کنید
سرور مجازی ایران وبداده در دیتاسنتر تهران و روی شبکه رسپینا میزبانی میشود و پس از پرداخت، تحویل خودکار انجام میشود. امکان تست ساعتی رایگان سرور هم وجود دارد تا پیش از مهاجرت تیم، نصب را بسنجید.
اگر سوالی داشتید، در بخش نظرات با ما در ارتباط باشید.