قبل البدء
ستحتاج إلى:
-
سيرفر VPS من أي مزود (Ubuntu 20.04 أو 22.04)
-
دومين خاص بك (Domain)
-
إمكانية تعديل إعدادات DNS للدومين
-
إنشاء Subdomain مخصص مثل:
matrix.your-domain.com
إعداد الدومين (DNS)
قبل تثبيت النظام، نقوم بربط الدومين بالسيرفر عبر إعداد DNS:
-
نضيف A Record
-
يشير إلى IP الخاص بالسيرفر
مثال:
-
الاسم:
matrix -
القيمة:
YOUR_SERVER_IP
الناتج يكون:
matrix.your-domain.com → IP السيرفر
الهدف من هذه الخطوة
هذه الإعدادات تسمح لك بـ:
-
الوصول للسيرفر عبر دومين بدل IP
-
تجهيز بيئة آمنة وسهلة الاستخدام
-
ربط خدمة Matrix لاحقًا مع Nginx و SSL
الخلاصة
بعد هذه الخطوات سيكون لديك:
-
سيرفر VPS جاهز
-
دومين مرتبط بالسيرفر
-
Subdomain مخصص لخدمة Matrix
-
بيئة جاهزة لبدء التثبيت الفعلي
شرح تثبيت Matrix Synapse على سيرفر Ubuntu
في هذا الدليل سنتعلم كيفية تثبيت وتشغيل Matrix Synapse (وهو سيرفر المحادثات الخاص بـ Matrix) على سيرفر Ubuntu باستخدام Docker وNginx مع تأمينه باستخدام SSL.
تم تعطيل خاصية الفدرالية في هذا السيرفر، مما يعني أنه يعمل بشكل مستقل تمامًا عن شبكة Matrix العالمية.
لا يمكن تبادل الرسائل أو الاتصال مع أي سيرفر خارجي، وجميع المحادثات تظل داخل السيرفر فقط، مما يوفر بيئة مغلقة وخاصة للاستخدام الداخلي.
مهم جدًا:
استبدلmatrix.3xa.netباسم الدومين الخاص بك، واستبدل الـ IP والإعدادات بما يناسب سيرفرك.
تحديث النظام وتثبيت المتطلبات الأساسية
أول خطوة هي تحديث النظام وتثبيت الأدوات الأساسية:
apt update
apt upgrade -y
apt install -y curl git ufw nginx certbot python3-certbot-nginx
تثبيت Docker
نقوم بتثبيت Docker لتشغيل خدمة Matrix داخل حاويات:
curl -fsSL https://get.docker.com | sh
التحقق من التثبيت:
docker --version
تفعيل خدمة Docker لتعمل تلقائيًا عند تشغيل السيرفر:
systemctl enable docker
systemctl start docker
تجهيز مجلد Matrix
ننشئ مجلد خاص بملفات السيرفر:
mkdir -p /opt/matrix
cd /opt/matrix
إنشاء إعدادات Matrix الأولية
نقوم بتوليد ملف الإعداد الأساسي:
docker run -it --rm \
-v /opt/matrix/data:/data \
-e SYNAPSE_SERVER_NAME=matrix.3xa.net \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:latest generate
استبدل:
matrix.3xa.net→ بدومينك الحقيقي
إنشاء ملف Docker Compose
نقوم بإنشاء ملف تشغيل الخدمة:
nano /opt/matrix/docker-compose.yml
ثم نضع بداخله:
services:
synapse:
image: matrixdotorg/synapse:latest
container_name: synapse
restart: unless-stopped
volumes:
- ./data:/data
ports:
- "127.0.0.1:8008:8008"
تعديل إعدادات Matrix
نفتح ملف الإعداد:
nano /opt/matrix/data/homeserver.yaml
ونضيف أو نعدل الإعدادات التالية:
enable_registration: false
send_federation: false
max_upload_size: 1G
شرح سريع:
-
enable_registration: false→ منع التسجيل العشوائي -
send_federation: false→ تعطيل الربط مع سيرفرات أخرى -
max_upload_size→ تحديد حجم الملفات
تشغيل السيرفر
cd /opt/matrix
docker compose up -d
التحقق:
docker ps
إعداد Nginx كـ Reverse Proxy
ننشئ ملف إعداد الموقع:
nano /etc/nginx/sites-available/matrix.3xa.net
ونضع:
server {
listen 80;
server_name matrix.3xa.net;
location / {
proxy_pass http://127.0.0.1:8008;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto https;
}
}
استبدل:
matrix.3xa.netبدومينك
تفعيل الموقع وإعادة تشغيل Nginx
ln -s /etc/nginx/sites-available/matrix.3xa.net /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
1
تفعيل SSL (HTTPS)
certbot --nginx -d matrix.3xa.net
1
إعداد جدار الحماية
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
1
إنشاء حساب مدير (Admin User)
docker exec -it synapse register_new_matrix_user \
-c /data/homeserver.yaml \
http://localhost:8008
عند السؤال:
Make admin [no]?
-
اكتب
noلحساب عادي -
اكتب
yesإذا كان هذا الحساب هو حساب الإدارة الرئيسي
وادخل اسم المستخدم وكلمة المرور الخاصة بالحساب
____________________________________________________________________
اخيرا :
ربط تطبيق Element مع سيرفر Matrix الخاص بك
ما هو تطبيق Element؟
Element هو تطبيق محادثات (Chat App) مبني على بروتوكول Matrix، ويُعتبر الواجهة الأساسية والأشهر للتواصل مع سيرفرات Matrix مثل السيرفر الذي قمنا بإعداده.
بمعنى أبسط:
Element هو التطبيق الذي تستخدمه للدخول إلى سيرفر Matrix وإرسال واستقبال الرسائل.
كيف يعمل؟
-
السيرفر (Matrix Synapse) هو “الخادم”
-
Element هو “التطبيق” الذي تتواصل من خلاله مع هذا الخادم
مميزات Element-
يدعم المحادثات الفردية والجماعية
-
يدعم التشفير الكامل للرسائل (End-to-End Encryption)
-
يعمل على الويب والجوال والكمبيوتر
-
يمكن ربطه بأي سيرفر Matrix خاص أو عام
-
لا يعتمد على رقم هاتف أو بريد إلكتروني (حسب إعداد السيرفر)
لماذا نستخدمه مع السيرفر الخاص؟
في هذا المشروع، نستخدم Element لأنه:
-
يوفر واجهة سهلة للمستخدمين
-
يتصل مباشرة بسيرفر Matrix الذي قمنا بإنشائه
-
يسمح لنا باستخدام النظام بدون الحاجة لأي خدمات خارجية
-
يدعم الخصوصية الكاملة داخل السيرفر الخاص
فتح تطبيق Element
بعد ما تعرفنا على أن Element هو تطبيق المحادثة الخاص بـ Matrix، الآن نبدأ باستخدامه للدخول إلى سيرفرنا الخاص.
يمكنك استخدام Element من أحد الخيارات التالية:
-
نسخة الويب:
https://app.element.io/ -
تطبيق الجوال: (Android / iOS) من متجر التطبيقات -
تطبيق سطح المكتب: للويندوز / ماك / لينكس
الدخول إلى السيرفر الخاصعند فتح التطبيق لأول مرة، لا تسجل الدخول مباشرة، بل قم بتغيير السيرفر الافتراضي.
افتراضيًا Element يستخدم سيرفر جاهز (Matrix.org)، لكن نحن نحتاج ربطه بسيرفرنا الخاص.
تغيير الدومين الافتراضيداخل شاشة تسجيل الدخول:
-
اضغط على خيار “Change” أو “Edit” بجانب السيرفر
-
اختر: Custom server / Advanced
-
في خانة السيرفر أدخل رابط سيرفرك:
https://matrix.your-domain.com
استبدل:your-domain.com➜ بالدومين الخاص بك
مثال:
https://matrix.3xa.net
المتابعة إلى تسجيل الدخولبعد إدخال الدومين الصحيح:
-
اضغط Continue
-
ستظهر صفحة تسجيل الدخول الخاصة بسيرفرك
-
الآن يمكنك تسجيل الدخول بالحساب اللي سويناه ( اسم المستخدم + كلمة السر )
-
أو إنشاء حساب (إذا كان مسموح) لكن في إعدادنا الحالي قمنا بإعلاقه وجعل التسجيل خاص من السرفر عن طريق الامر السابق وهو
-
إنشاء حساب مدير (Admin User)
docker exec -it synapse register_new_matrix_user \ -c /data/homeserver.yaml \ http://localhost:8008
-
-
-
وذلك لزيادة الأمان
بالنسبة لـ Element ستجدون في موقعه جميع روابط التحميل لكل الأجهزه ( ابل اندرويد .. الخ ) كذلك نسخة الويب بدون تحميل
نسخة الويب : https://app.element.io/
لباقي الأجهزة
عنده تحميله على الهاتف نختار الدخول اليدوي
نغير السيرفر الإفتراضي الى موقعنا اللي سويناه (https://matrix.3xa.net)
نختار اخر
ثم نضيفة
بعدها نسجل الدخول بالمستخدم اللي سويناه
ثم يفتح معانا
**ملاحظة عشان تضيف مستخدم تتواصل معه لازم تسوي له انشاء من السيرفر ثم تضيفة في البرنامج عندك
الاضافة تكون باسم المستخدم اللي انشأته متبوعا برابط الموقع كذا : @ahmed:matrix.3xa.net
نفس الصورة انا أنشأت مستخدم بإسم mo عشان اضيفة اعمل كذأ**
بعدها اقدر اتواصل معاه
**
element يوجد به خصائص كثيره وممتعه اكتشفها بنفسك**
**لا تنسى إذا سجلت دخول تعمل مفاتح التشفير
**










