دليل النشر

استضافة ‎Mattermost‎ على خادم ‎VPS‎ الخاص بك

انشر على VPS Cloud ←

دليل عملي

استضافة ‎Mattermost‎ على خادم ‎VPS‎ الخاص بك

الاستضافة الذاتية9 دقائق للقراءةعدد الخطوات: 7

‎Mattermost‎ منصة مراسلة للفِرق مفتوحة المصدر، غالباً ما تُقدَّم بوصفها البديل ذاتي الاستضافة عن ‎Slack‎. نشرها على خادم ‎VPS‎ الخاص بك يضمن بقاء محادثاتك المهنية على بنيتك التحتية. يغطّي هذا الدليل التثبيت الكامل عبر ‎Docker‎ مع ‎PostgreSQL‎ وإعداد ‎HTTPS‎/‎WebSocket‎ والتكاملات (‎Gitea‎ و‎Jira‎ و‎Zoom‎) والنسخ الاحتياطية والاستكشاف والإصلاح ومستجدات ‎Mattermost v10‎.

المحتويات· لماذا تستضيف ‎Mattermost‎ ذاتياً على خادم ‎VPS‎1/11
  1. 01لماذا تستضيف ‎Mattermost‎ ذاتياً على خادم ‎VPS‎
  2. 02فوائد ملموسة لـ ‎Mattermost‎ ذاتية الاستضافة
  3. 03المتطلبات العتادية والبرمجية
  4. 04نشر ‎Mattermost‎ مع ‎Docker‎ و‎SSL‎
  5. 05‎Mattermost v10‎: أبرز المستجدات
  6. 06التكاملات: ‎webhooks‎ و‎Gitea‎ و‎Jira‎ و‎Zoom‎
  7. 07النسخ الاحتياطية: قاعدة البيانات والملفات
  8. 08ما تحدّه النسخة المجانية منذ الإصدار 11
  9. 09‎Mattermost‎ مقابل ‎Slack‎ مقابل ‎Rocket.Chat‎
  10. 10استكشاف الأخطاء وإصلاحها: الأخطاء الشائعة
  11. 11الوثائق الرسمية

لماذا تستضيف ‎Mattermost‎ ذاتياً على خادم ‎VPS‎

توفر أدوات المراسلة بنموذج ‎SaaS‎ لكل مستخدم نشط وتحتفظ بسجلّ مراسلاتك على خوادمها. تقلب ‎Mattermost‎ هذا المنطق: استضيف منصة ذاتية الاستضافة على خادم ‎VPS‎ فِرقاً بأكملها دون تكلفة لكل مقعد في نسخة ‎Team‎، مع سجلّ كامل وتخزين ملفات تتحكّم أنت بها. وبالنسبة إلى وكالة أو شركة خاضعة لقيود السرّية، فإن استضافة المراسلة داخلياً تعني ألّا تمرّ الرسائل ولا الملفات المشتركة ولا البيانات الوصفية عبر طرف ثالث. كما تتكامل ‎Mattermost‎ أصلاً مع منصات ‎Git‎ وأدوات ‎CI/CD‎ و‎webhooks‎ واردة/صادرة، ما يجعلها محوراً مركزياً للتواصل بالنسبة إلى الفِرق التقنية.

على خلاف ‎Slack‎ الذي يفرض بنيته التحتية وأسعاره المتدرّجة، تمنحك نسخة ‎Mattermost‎ الذاتية تحكّماً كاملاً في الاحتفاظ بالرسائل وسياسات الأرشفة وسجلات التدقيق والتكاملات. وهذا بالغ الأهمية للفِرق الخاضعة للوائح قطاعية — رعاية صحية، مالية، دفاع — حيث لا يُسمح بخروج البيانات خارج نطاق محدّد.

فوائد ملموسة لـ ‎Mattermost‎ ذاتية الاستضافة

  • سجلّ رسائل كامل في نسخة ‎Team‎ — النسخة المجانية ‎Entry‎ تحدّ السجلّ القابل للعرض بعشرة آلاف رسالة منذ الإصدار 11 (انظر القسم المخصّص).
  • تخزين الملفات المشتركة على خادم ‎VPS‎ الخاص بك أو على حاوية ‎S3‎ تتحكّم أنت بها.
  • ‎webhooks‎ واردة/صادرة وأوامر ‎slash‎ لربط ‎CI‎ والمراقبة والتنبيهات.
  • مصادقة مؤسسية: ‎LDAP/AD‎ و‎SAML‎ و‎OAuth‎ بحسب النسخة.
  • تطبيقات سطح مكتب وجوّال رسمية تشير إلى نطاقك الخاص.
  • امتثال وسيادة على البيانات: لا محادثة خارج بنيتك التحتية.
  • مكوّن إضافي ‎Boards‎ مدمج (‎v10+‎) لإدارة المشاريع بـ ‎Kanban‎ مباشرةً من المراسلة.
  • مكالمات صوتية/مرئية ‎HD‎ عبر مكوّن ‎Calls‎ — مؤتمرات دون أداة خارجية.

المتطلبات العتادية والبرمجية

‎Mattermost‎ أكثر تطلّباً من منصة ‎Git‎ لأنها تحافظ على اتصالات ‎WebSocket‎ دائمة. احسب خادم ‎VPS‎ بـ معالجَين افتراضيَّين (‎2 vCPU‎) و‎4‎ غيغابايت من الذاكرة (‎RAM‎) لفريق حتى 50 مستخدماً نشطاً؛ اهدف إلى ‎8‎ غيغابايت لما فوق ذلك أو إذا فعّلت البحث المتقدّم (‎Elasticsearch‎). للمؤسسات التي تضمّ 100 إلى 500 مستخدم، أو إذا فعّلت المكالمات المرئية ‎HD‎ عبر مكوّن ‎Calls‎، فاحتسب ‎16‎ غيغابايت من الذاكرة و‎4 vCPU‎. ‎PostgreSQL‎ هي قاعدة البيانات الموصى بها منذ ‎v10‎ — ‎MySQL‎ لا تزال مدعومة لكن ‎PostgreSQL‎ أفضل أداءً للأحجام الكبيرة. خصّص ‎30‎ غيغابايت من ‎SSD‎ كحدّ أدنى، وأكثر إذا خزّنت كثيراً من الملفات محلياً.

على الجانب البرمجي: ‎Docker Engine 24+‎ و‎Docker Compose v2‎، ونطاق فرعي ‎chat.yourdomain.com‎ مع سجل ‎A‎، و‎reverse proxy‎ قادر على تمرير اتصالات ‎WebSocket‎ بشكل صحيح (‎Upgrade‎/‎Connection‎). شهادة ‎TLS‎ صالحة مطلوبة — تطبيقات الجوّال ترفض اتصالات ‎HTTP‎. افتح أيضاً المنفذ ‎8443‎ إذا فعّلت مكالمات الفيديو (مكوّن ‎Calls/RTCD‎) وأعدّ خادم ‎TURN‎ للاتصالات خلف ‎NAT‎.

نشر ‎Mattermost‎ مع ‎Docker‎ و‎SSL‎

  1. تجهيز خادم ‎VPS‎

    ثبّت ‎Docker‎ و‎Compose‎، ثم اجلب المستودع الرسمي ‎mattermost-docker‎ أو أنشئ /‎opt/mattermost‎. ارفع عند الحاجة ‎vm.max_map_count‎ وحدود الملفات المفتوحة:
    sysctl -w vm.max_map_count=262144 echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

  2. إعداد ‎PostgreSQL‎ ووحدات التخزين

    في ملف ‎docker-compose.yml‎، صرّح عن خدمة ‎postgres‎ بكلمة مرور قوية ووحدات تخزين دائمة لـ /‎var/lib/postgresql/data‎. بالنسبة إلى ‎Mattermost‎، ركّب وحدات تخزين مخصّصة لـ ‎config‎ و‎data‎ و‎logs‎ و‎plugins‎ للاحتفاظ بكل شيء خارج الحاوية.

  3. تشغيل حزمة ‎Mattermost‎

    أدخِل المتغيرَين ‎MM_SQLSETTINGS_DATASOURCE‎ و‎MM_SERVICESETTINGS_SITEURL‎ (بصيغة ‎HTTPS‎)، ثم نفّذ ‎docker compose up -d‎. تابِع ‎docker compose logs -f‎ حتى الرسالة التي تشير إلى أن الخادم يستمع على المنفذ 8065.

  4. إعداد ‎reverse proxy‎ بـ ‎HTTPS‎ مع ‎WebSocket‎

    مع ‎Nginx‎، مرّر الطلبات إلى ‎http://127.0.0.1:8065‎ وأضِف حتماً هذه الترويسات:
    proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400;
    bدونها لن تعمل المراسلة الآنية. مع ‎Caddy‎، يتولّى ‎reverse_proxy localhost:8065‎ أمرَ ‎WebSocket‎ تلقائياً.

  5. تفعيل شهادة ‎SSL‎ (‎Let's Encrypt‎)

    احصل على الشهادة عبر ‎certbot --nginx -d chat.yourdomain.com‎ أو دَع ‎Caddy‎ يوفّرها وحده. تحقّق من أن ‎SiteURL‎ بصيغة ‎https://‎ فعلاً في الإعداد، وإلا فسيرفض عملاء الجوّال الاتصال.

  6. إنشاء الفريق وتحسين المنصة

    افتح ‎https://chat.yourdomain.com‎، وأنشئ حساب مدير النظام وفريقك الأول. عطّل التسجيل المفتوح (السماح بالدعوات البريدية فقط)، وأعدّ ‎SMTP‎ لرسائل الإشعارات البريدية، واقصر إنشاء الفِرق على المدراء.

  7. أول تسجيل دخول

    افتح الرابط فور انتهاء التثبيت: يعرض ‎Mattermost‎ شاشة إنشاء حساب، وأول حساب يُنشأ على الإطلاق يحصل تلقائياً على دور مدير النظام. أنشئه فوراً.

‎Mattermost v10‎: أبرز المستجدات

‎Mattermost v10‎ (صدر أواخر 2024، فرع الدعم الممتد ‎v10.x‎ نشط خلال 2025–2026) أدخل تحسينات بارزة للنسخ ذاتية الاستضافة:

‎Boards‎ مدمج بشكل رسمي (‎GA‎) — المكوّن الإضافي ‎Boards‎ (‎Kanban‎/لوحة بيانات) أصبح مُحزَّماً مسبقاً ومفعَّلاً بالإعداد الافتراضي. تُدير فِرقك المشاريع مباشرةً من ‎Mattermost‎ دون أداة خارجية.

مكالمات ‎HD‎ (مكوّن ‎Calls v0.x‎) — مؤتمرات صوتية ومرئية ‎HD‎ مباشرةً في القنوات مع مشاركة الشاشة. يتضمّن تثبيت ‎Docker‎ المكوّن الإضافي؛ يكفي تفعيل ‎MM_PLUGINSETTINGS_ENABLE=true‎.

‎SAML AES-256-GCM‎ — تشفير معزَّز لتأكيدات ‎SAML‎ في البيئات المؤسسية.

‎Connected Workspaces‎ بشكل رسمي (‎GA‎) — القنوات المشتركة بين نسخ ‎Mattermost‎ المتعددة تنتقل من التجربة إلى الإتاحة العامة.

إيقاف دعم ‎E10/E20‎ — إذا كنت تُهاجر من ترخيص قديم، فتحقّق من خطتك قبل الترقية.

التكاملات: ‎webhooks‎ و‎Gitea‎ و‎Jira‎ و‎Zoom‎

تتميّز ‎Mattermost‎ بوصفها محوراً مركزياً للفِرق التقنية. أبرز التكاملات في النشر ذاتي الاستضافة:

‎Webhooks‎ واردة — لكل قناة رابط ‎webhook‎ خاص. يُرسل نظام ‎CI‎ طلب ‎POST‎ بصيغة ‎JSON‎ عند نجاح النشر أو فشله؛ يعرضه ‎Mattermost‎ في #ci-alerts. الإعداد من ‎Integrations → Incoming Webhooks‎.

‎Webhooks‎ صادرة — يُرسل ‎Mattermost‎ طلب ‎HTTP‎ عند احتواء رسالة على كلمة مفتاحية محدَّدة. مفيد لتشغيل التدفقات البرمجية من المحادثة.

‎Gitea‎ و‎GitLab‎ — المكوّن الرسمي لـ ‎GitLab‎ (متوافق مع ‎Gitea‎ عبر ‎webhooks‎ بصيغة ‎JSON‎) يُخطرك بالدفع وطلبات الدمج والقضايا في قنوات المستودعات.

‎Jira‎ — يتيح مكوّن ‎Jira‎ إنشاء تذاكر مباشرةً من رسالة ‎Mattermost‎ واستقبال تحديثات الحالة في القنوات.

‎Zoom‎ — يُنشئ مكوّن ‎Zoom‎ رابط اجتماع بأمر ‎slash‎ واحد /zoom في أي قناة. البديل: استخدم مكوّن ‎Calls‎ الأصيل لاجتماعات كاملة ‎on-premise‎.

النسخ الاحتياطية: قاعدة البيانات والملفات

تعتمد نسخة ‎Mattermost‎ على مكوّنَين يستلزمان نسخاً احتياطياً منتظماً: قاعدة ‎PostgreSQL‎ ومجلد البيانات.

نسخ احتياطي لـ ‎PostgreSQL‎ باستخدام ‎pg_dump‎ (من المضيف والحاوية تعمل):
docker exec mattermost-postgres pg_dump -U mmuser mattermost | gzip > /backups/mm-$(date +%Y%m%d).sql.gz

نسخ احتياطي لمجلد البيانات — ركّب وحدة تخزين ‎mattermost/data‎ خارجياً وأرشفها:
tar czf /backups/mm-data-$(date +%Y%m%d).tar.gz /opt/mattermost/data

الاستعادة — لاستعادة البيانات: أوقف الحاويات، واستورد تفريغ ‎SQL‎ في حاوية ‎Postgres‎ جديدة، واستبدل مجلد ‎data‎، ثم شغّل ‎docker compose up -d‎.

احرص على اختبار الاستعادة مرةً واحدة على الأقل: نسخة احتياطية غير مُختبَرة ليست نسخة احتياطية حقيقية.

ما تحدّه النسخة المجانية منذ الإصدار 11

ابتداءً من ‎Mattermost 11‎، تحدّ النسخة المجانية المستضافة ذاتياً — واسمها ‎Entry‎ — السجلّ القابل للعرض بعشرة آلاف رسالة، عبر كل القنوات وعلى مستوى الخادم كله. والنقطة التي كثيراً ما يُساء فهمها: الرسائل الأقدم لا تُحذف. تبقى في قاعدة بياناتك وعلى جهازك، لكنها تتوقف ببساطة عن كونها قابلة للعرض والبحث من داخل التطبيق. وقد قوبل التغيير باستياء في المجتمع، تحديداً لأنه يقيّد بيانات يستضيفها المستخدم بنفسه. وهناك مخرجان: الانتقال إلى نسخة مدفوعة لرفع الحدّ، أو اختيار أداة لا تحدّ نسختها الحرة السجلّ. وإن كان استخدامك مراسلة فريق طويلة الأمد، فقيّس حجمك الشهري قبل الالتزام: عشرة آلاف رسالة تُستهلك بسرعة بين عدة أشخاص. وهناك مسار ثالث كثيراً ما يُغفل: نسخة ‎Team‎ المجانية أيضاً لا تحدّ السجلّ، لكنها لا تدعم الدخول الموحّد (‎SSO‎) وتتوقّف عند 250 مستخدماً. فالاختيار إذن بين حدّ على السجلّ (‎Entry‎) وحدّ على المستخدمين دون ‎SSO‎ (‎Team‎).

‎Mattermost‎ مقابل ‎Slack‎ مقابل ‎Rocket.Chat‎

مرّر الجدول أفقيًا

المعيار‎Mattermost (Team)‎‎Slack‎ (مجاني)‎Rocket.Chat (CE)‎
استضافة ذاتيةنعملا (‎SaaS‎)نعم
سجلّ الرسائلغير محدود90 يوماًغير محدود
التكلفة لكل مستخدممجاني حتى 250 مستخدماًمجاني / 7.25 $/م/شهر Proمجاني (مفتوح المصدر)
مكالمات مرئية أصيلةمكوّن ‎Calls‎ (‎HD‎)تكامل ‎Huddles‎مكوّن ‎Jitsi‎
‎Boards‎/إدارة المشاريعمكوّن ‎Boards‎ (‎GA v10‎)لا (‎Canvases‎)لا
‎LDAP‎/‎SAML‎النسخ المدفوعةلا (‎SAML Enterprise+‎)نعم (مضمّن ‎CE‎)
‎API‎ و‎webhooks‎نعم (واردة/صادرة)نعمنعم
الجوّال (‎iOS‎/‎Android‎)تطبيقات رسميةتطبيقات رسميةتطبيقات رسمية

استكشاف الأخطاء وإصلاحها: الأخطاء الشائعة

‎WebSocket SSL‎ لا يتصل — تحقّق من أن كتلة ‎Nginx‎ تتضمّن ‎proxy_set_header Upgrade $http_upgrade;‎ و‎proxy_set_header Connection "upgrade";‎. إذا كان الـ ‎proxy‎ خلف ‎Cloudflare‎، فعّل وضع ‎WebSocket‎ في لوحة تحكّم ‎Cloudflare‎ (الشبكة → ‎WebSockets‎).

خطأ الاتصال بقاعدة البيانات — تأكّد أن ‎MM_SQLSETTINGS_DATASOURCE‎ يشير إلى خدمة ‎postgres‎ في ‎Compose‎ (‎postgres://mmuser:password@db:5432/mattermost‎). يجب أن تكون حاوية ‎Mattermost‎ على الشبكة ذاتها في ‎Docker‎ مع ‎postgres‎.

الترقية بين الإصدارات الرئيسية — لا تتخطَّ إصدارات رئيسية. من ‎v9‎ إلى ‎v11‎: مرّ بـ ‎v10‎ أولاً، وانتظر اكتمال ترحيل المخطط (راجع السجلات)، ثم انتقل إلى ‎v11‎. راجع ‎CHANGELOG.md‎ الرسمي لـ ‎breaking changes‎ قبل كل قفزة.

تطبيقات الجوّال ترفض الاتصال — يجب أن يكون ‎SiteURL‎ بصيغة ‎https://‎ والشهادة صالحة. تُرفض الشهادات الموقَّعة ذاتياً بواسطة تطبيقات ‎iOS‎/‎Android‎ دون إعداد ‎MDM‎.

بالنسبة إلى الملفات المشتركة، لا تخزّن كل شيء على قرص خادم ‎VPS‎ على المدى الطويل: اضبط ‎Mattermost‎ على وضع تخزين الكائنات المتوافق مع ‎S3‎. يفصل ذلك وحدة تخزين البيانات عن حجم خادم ‎VPS‎ الخاص بك، ويبسّط النسخ الاحتياطية جذرياً (تؤرشف الحاوية بشكل مستقل) ويسهّل توسّعاً أفقياً محتملاً. فكّر أيضاً في تفعيل الاحتفاظ بالبيانات لتنقية الرسائل القديمة تلقائياً والتحكم في نمو ‎PostgreSQL‎.

الوثائق الرسمية

للإعداد المتقدّم والخيارات الخاصة بالأداة، ارجع إلى الوثائق الرسمية لـ ‎Mattermost‎. يغطّي هذا الدليل النشر على خادم ‎VPS‎؛ وتبقى وثائق الناشر المرجعَ للضبط الدقيق والترقيات الكبرى وحالات الاستخدام الخاصة.

أقِم Mattermost الخاص بك على خادم VPS Cloud من ServOrbit

يتيح لك خادم VPS Cloud مزوَّد بـDocker مُعَدًّا مسبقًا وعنوان IP ثابت نشرَ Mattermost وPostgreSQL وreverse proxy الخاص بـWebSocket دون أي عوائق. تبقى محادثاتك عندك.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة