لماذا تستضيف Mattermost ذاتيًا على خادم VPS
تفوتِر أدوات المراسلة بنموذج SaaS لكل مستخدم نشط وتحتفظ بسجلّ مراسلاتك على خوادمها. تقلب Mattermost هذا المنطق: تستضيف منصة ذاتية الاستضافة على خادم VPS فِرقًا بأكملها دون تكلفة لكل مقعد في نسخة Team، مع سجلّ غير محدود وتخزين ملفات تتحكّم أنت به. وبالنسبة إلى وكالة أو شركة خاضعة لقيود السرّية، فإن استضافة المراسلة داخليًا تعني ألّا تمرّ الرسائل ولا الملفات المشتركة ولا البيانات الوصفية عبر طرف ثالث. كما تتكامل Mattermost أصلًا مع منصات Git وأدوات CI/CD وwebhooks واردة/صادرة، ما يجعلها محورًا مركزيًا للتواصل بالنسبة إلى الفِرق التقنية.
فوائد ملموسة لـMattermost ذاتية الاستضافة
- سجلّ رسائل غير محدود، دون قطعٍ عند بضعة آلاف رسالة كما في العروض المجانية بنموذج SaaS.
- تخزين الملفات المشتركة على خادم VPS الخاص بك أو على حاوية S3 تتحكّم أنت بها.
- webhooks واردة/صادرة وأوامر slash لربط CI والمراقبة والتنبيهات.
- مصادقة مؤسسية: LDAP/AD وSAML وOAuth بحسب النسخة.
- تطبيقات سطح مكتب وجوّال رسمية تشير إلى نطاقك الخاص.
- امتثال وسيادة على البيانات: لا محادثة خارج بنيتك التحتية.
المتطلبات العتادية والبرمجية
Mattermost أكثر تطلّبًا من منصة Git لأنها تحافظ على اتصالات WebSocket دائمة. احسب خادم VPS بمعالجَين افتراضيَّين (2 vCPU) و4 غيغابايت من الذاكرة (RAM) لفريق حتى 50 مستخدمًا نشطًا؛ اهدف إلى 8 غيغابايت لِما فوق ذلك أو إذا فعّلت البحث المتقدّم. PostgreSQL هي قاعدة البيانات المُوصى بها. خصّص 30 غيغابايت من SSD كحدّ أدنى، وأكثر إذا خزّنت كثيرًا من الملفات محليًا. على الجانب البرمجي: Docker وDocker Compose، ونطاق فرعي chat.yourdomain.com مع سجل A، وreverse proxy قادر على تمرير اتصالات WebSocket بشكل صحيح (Upgrade/Connection).
نشر Mattermost مع Docker وSSL
تجهيز خادم VPS
ثبّت Docker وCompose، ثم اجلب المستودع الرسمي mattermost-docker أو أنشئ /opt/mattermost. ارفع عند الحاجة vm.max_map_count وحدود الملفات المفتوحة، فـMattermost تفتح اتصالات متزامنة كثيرة.
إعداد PostgreSQL ووحدات التخزين
في ملف docker-compose.yml، صرِّح عن خدمة postgres بكلمة مرور قوية ووحدات تخزين دائمة لـ/var/lib/postgresql/data. بالنسبة إلى Mattermost، ركّب وحدات تخزين مخصّصة لـconfig وdata وlogs وplugins للاحتفاظ بكل شيء خارج الحاوية.
تشغيل حزمة Mattermost
أدخِل المتغيرَين MM_SQLSETTINGS_DATASOURCE وMM_SERVICESETTINGS_SITEURL (بصيغة HTTPS)، ثم نفّذ docker compose up -d. تابِع docker compose logs -f حتى الرسالة التي تشير إلى أن الخادم يستمع على المنفذ 8065.
إعداد reverse proxy مع WebSocket
مع Nginx، مرّر الطلبات إلى http://127.0.0.1:8065 وأضِف حتمًا proxy_set_header Upgrade $http_upgrade; وproxy_set_header Connection "upgrade";، وإلا فلن يعمل الوقت الحقيقي. مع Caddy، يتولّى reverse_proxy localhost:8065 أمرَ WebSocket تلقائيًا.
تفعيل شهادة SSL
احصل على الشهادة عبر certbot --nginx -d chat.yourdomain.com أو دَع Caddy يوفّرها وحده. تحقّق من أن SiteURL بصيغة https:// فعلًا في الإعداد، وإلا فسيرفض عملاء الجوّال الاتصال.
إنشاء الفريق وتحصين المنصة
افتح https://chat.yourdomain.com، وأنشئ حساب مدير النظام وفريقك الأول. عطّل التسجيل المفتوح، وأعدّ SMTP لرسائل الإشعارات البريدية، واقصر إنشاء الفِرق على المدراء.
بالنسبة إلى الملفات المشتركة، لا تخزّن كل شيء على قرص خادم VPS على المدى الطويل: اضبط Mattermost على وضع تخزين الكائنات المتوافق مع S3. يفصل ذلك وحدة تخزين البيانات عن حجم خادم VPS الخاص بك، ويبسّط النسخ الاحتياطي جذريًا (تُؤرشَف الحاوية بشكل مستقل) ويسهّل توسّعًا أفقيًا محتملًا. فكّر أيضًا في تفعيل الاحتفاظ بالبيانات لتنقية الرسائل القديمة تلقائيًا والتحكم في نمو PostgreSQL.
الوثائق الرسمية
للإعداد المتقدّم والخيارات الخاصة بالأداة، ارجع إلى الوثائق الرسمية لـMattermost. يغطّي هذا الدليل النشر على خادم VPS؛ وتبقى وثائق الناشر المرجعَ للضبط الدقيق والترقيات الكبرى وحالات الاستخدام الخاصة.