التركيب: تميمة الدب القطبي لـ NordBastion في درع شمالي تكتيكي تقف أمام خزينة شفافة من خلايا تشفير مضاءة بالسماوي، خيوط فيدرالية تنسج بين ظلال قلاع بعيدة عبر ليل مضيق، شعار Matrix محفور بخفّة على باب الخزينة، والشفق القطبي في الأعلى
حالة استخدام · خادم Matrix منزلي · مُحدَّث 2026

خادم Matrix منزلي خاص بك.
من الطرف إلى الطرف. فيدرالي. شمالي. لا يمكن استجوابه.

Synapse + Postgres + Element على Ravelin بسعر 23.90$/شهر. خادمك المنزلي يُمرّر ويتّحد فيدرالياً؛ لا يستطيع قراءة حركة E2E الخاصة به؛ القضاء الشمالي يعني أنه لا يمكن لأحد أن يطلب منه بأدب البدء بالمحاولة.

الخلاصة
  • 01

    Ravelin بسعر 23.90$/شهر يحمل Synapse بـ ~100 غرفة جيدة الفيدرالية بأريحية — Postgres وRedis وعمّال Synapse وذاكرة حالة الغرفة، كلها على الصندوق نفسه.

  • 02

    التشفير من الطرف إلى الطرف هيكلي — الخادم المنزلي يُمرّر نصاً مشفّراً لا يستطيع فك تشفيره. التسجيل الخالي من KYC للمدير يعني أن المشغّل لا يحمل أثراً ورقياً أيضاً.

  • 03

    قضاء شمالي + لا سجلات بحكم التصميم + وصلة صاعدة غير محسوبة. ثرثرة الفيدرالية لمجموعة غرف نشطة حجم حقيقي؛ لا تُفوتر إضافياً هنا.

لماذا نتعب أنفسنا

لماذا نستضيف الخادم المنزلي ذاتياً من الأساس.

الانضمام إلى matrix.org هو الإجابة الصحيحة لمعظم الناس. تشغيل خادمك المنزلي الخاص هو الإجابة الصحيحة عندما يجب ألا تعيش مُعرّفك وعضوية غرفتك وبيانات رسائلك على لوحة إدارة شخص آخر. البروتوكول فيدرالي، والتشفير من الطرف إلى الطرف؛ القطعة المفقودة هي "من يتحكم بالصندوق الذي يرسو إليه حسابي"، والإجابة تغيّر نموذج التهديد بشكل جوهري.

نموذج الفيدرالية في Matrix كريم: أي خادم منزلي يمكن أن يتحدث مع أي خادم منزلي آخر، الغرف تمتد عبر الخوادم، التشفير يتبع المستخدم، ولا يوجد دليل مركزي مطلوب للمشاركة. بمجرد أن يعمل خادمك المنزلي ويتم التحقق منه مقابل federation tester، يصبح حسابك مواطناً من الدرجة الأولى في الشبكة — مثل @user:matrix.org أو @user:mozilla.org، فقط على نطاقك.

القصة التشغيلية لـ Synapse مطروقة جيداً: قالب Docker Compose رسمي، Postgres للحالة، Redis لتجمّع العمّال، عمّال مُجزّأة اختياريون لفيدرالية عالية الحجم. لا شيء منه جديد؛ وكله موثَّق؛ وأوضاع الفشل معروفة.

السؤال الصحيح ليس "استضافة ذاتية أم matrix.org" بشكل مجرّد — بل هو "هل أريد هويتي الفيدرالية مرتبطة بصندوق أُديره". إذا كانت الإجابة نعم، فإن باقي هذه الصفحة هو الوصفة.

تحديد الحجم

فئة NordBastion المناسبة للمهمة.

لخادم منزلي مجتمعي بـ ~100 غرفة (مزيج من DMs الصغيرة وحفنة من الغرف العامة جيدة الإقامة تتّحد فيدرالياً للخارج)، فإن Ravelin (23.90$/شهر، 8 vCPU، 16 GB، 480 GB NVMe) هو الفئة المناسبة. مسار بيانات Synapse في Python جائع للـ RAM تحت دفعات الفيدرالية — غرفة شعبية ينضم إليها خادم بـ 50 ألف مستخدم تُنتج ارتفاعاً عابراً في حل الحالة يحتاج إلى متسع. 16 GB تستوعب ذلك بأريحية.

ما بعد ~1000 غرفة نشطة أو حالما تدفع حركة الفيدرالية Synapse إلى الحاجة لوضع العمّال المُجزّأة، تمنحك فئة Bulwark الأنوية لتشغيل عمّال federation_sender وsynchrotron وevent_persister مخصصين — قصة Synapse للتوسع الأفقي ضمن صندوق واحد. عند تلك النقطة تريد أيضاً التفكير فيما إذا كان يجب أن يكون Postgres على VPS خاص به؛ يمكننا التحدث عن تخطيط بصندوقين.

لخادم منزلي شخصي — حسابك، بضع DMs، وبضع غرف خاصة صغيرة — فإن Garrison (11.90$/شهر، 4 vCPU، 8 GB، 240 GB NVMe) كافٍ. Conduit على Sentinel ممكن تقنياً لإعداد مستخدم واحد، لكن Synapse على Garrison يمنحك المتسع للنموّ بدون ترحيل.

ما لا تكون أي من هذه: عرض Matrix مُدار بألف مستأجر. NordBastion مبني للمشغّل الذي يدير خادمه المنزلي الخاص لأشخاص يعرفهم — لا لبيع حسابات Matrix للغرباء.

الإعداد

من VPS جديد إلى أول غرفة فيدرالية. ست خطوات، حوالي تسعين دقيقة.

رسم هيكلي — تبقى وثائق Synapse الرسمية من element-hq المرجع الموثوق لضبط homeserver.yaml ووضع العمّال.

  1. 01

    Docker + Compose

    محرك Docker الرسمي + مكوّن Compose v2 الإضافي. Element-HQ ينشر صورة Synapse مُصانة يمكنك تثبيتها بوسم.

    curl -fsSL get.docker.com \
      | sh
    apt install \
      docker-compose-plugin
  2. 02

    ولّد homeserver.yaml

    وضع "generate" أحادي اللقطة لصورة Synapse يكتب إعداداً ابتدائياً مرتبطاً بـ server_name الخاص بك. عطّل التسجيل المفتوح في نفس الجولة.

    docker run --rm \
      -v ./data:/data \
      -e SYNAPSE_SERVER_NAME=example.org \
      matrixdotorg/synapse:latest \
      generate
  3. 03

    وصّل Postgres + Redis

    Postgres هو متجر الإنتاج؛ SQLite للاختبار فقط. Redis مطلوب لتجمّع العمّال حتى لو بدأت بعملية واحدة.

    # أضف إلى docker-compose.ymlpostgres: postgres:15
    redis:    redis:7-alpine
    # ثم في homeserver.yaml: مُشغّل قاعدة البيانات psycopg2
  4. 04

    انشر well-known

    ملفّان صغيران JSON على /.well-known/matrix/{client,server} على نطاقك الجذري. يُقدَّمان كـ application/json مع CORS Access-Control-Allow-Origin: *.

    # /.well-known/matrix/server
    {"m.server": "matrix.example.org:443"}
    # /.well-known/matrix/client
    {"m.homeserver":{"base_url":"https://matrix.example.org"}}
  5. 05

    تحقق من الفيدرالية

    federationtester.matrix.org يفحص well-known وسلسلة الشهادات ومصافحة TLS ومصافحة الإصدار وتبادل المفاتيح. لا تدعُ مستخدمين حتى يكون أخضر.

    # الصق server_name في:# federationtester.matrix.org
    # كل الفحوصات يجب أن تكون خضراء
  6. 06

    سُكّ المدير عبر السرّ المشترك

    registration_shared_secret في homeserver.yaml + register_new_matrix_user CLI = حساب مدير بدون فتح التسجيل العام أبداً.

    docker compose exec synapse \
      register_new_matrix_user \
      -a -c /data/homeserver.yaml \
      http://localhost:8008
لماذا هذا المضيف لهذه المهمة

لماذا NordBastion تحديداً لخادم Matrix منزلي.

KYC-free

مديرو البنية التحتية E2E لا ينبغي أن يحملوا أثراً ورقياً.

التشفير من الطرف إلى الطرف ادّعاء قوي. يُقوَّض في اللحظة التي يعرف فيها مضيف المُرحّل، من KYC على جانب الفوترة، بالضبط أي شخص قانوني أقام هذا الخادم المنزلي. التسجيل الخالي من KYC مع فوترة بالعملات المشفرة فقط يُبقي البيانات الإدارية للمُرحّل معتمة كاعتمام بيانات حمولة المُرحّل: "الرصيد المدفوع مسبقاً وراء هذا البريد"، نهاية القصة.

قضاء شمالي

حزام وحمّالات.

التشفير من الطرف إلى الطرف في Matrix يمنع المُرحّل حسابياً بالفعل من قراءة الحمولات. القضاء الشمالي يضيف طبقة ثانية: لا تكليف باحتفاظ البيانات يُجبر المضيف على تسجيل بيانات الاتصال، ولا تشريع مسح من جانب العميل مُفعَّل، وwarrant canary منشور يصف ما سيحدث لو حاول أحد تغيير الحسابات (لا نستطيع). طبقتان من "لا" تفوقان واحدة.

1 Gbps غير محسوب

الفيدرالية حجم.

خادم منزلي فيدرالي في بضع غرف عامة جيدة الإقامة يدفع الكثير من أحداث الفيدرالية الصغيرة — كل انضمام، وكل تغيير حالة، وكل إيصال رسالة هو توزيع إلى N خوادم. الإجمالي ليس هائلاً لكنه مستدام، وأي مضيف يفوتر بـ GB-out يجعل المشغّل متوتراً. الوصلة الصاعدة غير المحسوبة تزيل العبء المعرفي: اتّحد فيدرالياً بقدر ما يتطلب البروتوكول؛ الفاتورة واحدة.

الحكم

شغّله على Ravelin. عطّل التسجيل المفتوح. دع الفيدرالية تقوم بالباقي.

الاستضافة الذاتية لخادم Matrix منزلي هي إحدى أنظف حركات السيادة التي يمكن لمجموعة صغيرة فعلها لمراسلتها. بسعر مقعد واحد في أداة دردشة SaaS تحصل على خادم منزلي فيدرالي مشفّر من الطرف إلى الطرف تبقى مُعرّفاته على قيد الحياة بعد أي منصة، والإشراف لك، والاستضافة في اختصاص قضائي بدون تكليفات احتفاظ بالبيانات ولا تشريع مسح من جانب العميل مُفعَّل.

NordBastion رأيي بشأن الأجزاء التي تهم لهذه المهمة بالذات — تسجيل مدير خالٍ من KYC، قضاء شمالي، وصلة صاعدة غير محسوبة — وعادي عمداً بشأن البقية. Docker هو Docker. Synapse هو Synapse. Element-HQ يأتي بالصورة؛ ونحن نأتي بالصندوق.

خذ سهرة، نفّذ الخطوات الست، تحقق مقابل federation tester، سُكّ المدير. الخادم المنزلي يعيش بعد السهرة بسنوات.

الأسئلة الشائعة · Matrix على VPS

الأسئلة التي تطرح أولاً.

الأسئلة الثمانية التي يصارعها فعلاً مديرو Matrix قبل docker compose up. well-known delegation هو السؤال الثاني لسبب وجيه.

لماذا التشفير من الطرف إلى الطرف إذا كان الخادم لي بالفعل؟

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

ما هو well-known delegation ولماذا يتعثّر فيه الجميع؟

Matrix يتيح لنطاقك المواجه للمستخدم (example.org) أن يختلف عن نطاقك المواجه للخادم (matrix.example.org) بتقديم ملفّين صغيرين JSON على https://example.org/.well-known/matrix/client و/.well-known/matrix/server. الأول يخبر Element عن رابط homeserver المُستخدم؛ والثاني يخبر النظراء الفيدراليين أين يصلون إلى Synapse لـ s2s API. يتعثّر الناس في ثلاثة أشياء: تقديم الملفات بـ Content-Type خاطئ، أو CORS لا يسمح لخوادم أخرى بجلبها، أو ملف الخادم يشير إلى منفذ لا يكشفه جدار الحماية فعلاً. تحقق بـ federationtester.matrix.org قبل نشر الغرفة.

Synapse مقابل Dendrite مقابل Conduit — هل يهم بالنسبة للاستضافة؟

Synapse (Python، التنفيذ المرجعي) هو ما يشغّله 95% من الخوادم المنزلية العامة؛ وهو أكثر النظراء الفيدراليين اختباراً والوحيد الذي يدعم كل ميزة تُعرّفها المواصفة. Conduit (Rust، ثنائي واحد، RocksDB) وDendrite (Go، خدمات مصغّرة) أخف — Conduit شهير بأنه يعمل على Raspberry Pi. لخادم منزلي فيدرالي مواجه للجمهور بمستخدمين عليه، Synapse هو الإجابة؛ ولخادم مستخدم واحد للهواة يمكنك تجربة Conduit على Sentinel. هذه الافتتاحية تفترض Synapse.

كيف أتجنّب spam التسجيل العام؟

اضبط enable_registration: false في homeserver.yaml واعتمد على registration_shared_secret لسكّ الحسابات عبر admin API للأشخاص الذين تريدهم فعلاً. بدلاً من ذلك، enable_registration_without_verification: false مع تدفق دعوة سرّ مشترك مُرمَّز. فيدرالية Matrix كبيرة بما يكفي ليصبح أي خادم منزلي بتسجيل مفتوح مزرعة حسابات spambot خلال أيام؛ الإجابة النموذجية هي "التسجيل منتقى من المدير، والفيدرالية مفتوحة".

Element مقابل Cinny مقابل SchildiChat وغيرهم — هل يهمّ الخادم المنزلي؟

لا — Matrix C-S API هو عقد البروتوكول، وكل عميل متوافق يتحدث مع كل خادم متوافق. Element هو الافتراضي والأكثر اختباراً؛ Cinny هو عميل ويب أخف يفضّل بعض المستضيفين ذاتياً تجميعه؛ SchildiChat هو نسخة معدّلة من Element بواجهة على غرار Telegram؛ FluffyChat يستهدف الجوال أولاً. الخادم المنزلي لا يرى ولا يهتم بأي عميل يستخدم المستخدم. اختر ما يفضّله مجتمعك، غيّره لاحقاً، بدون أي ترحيل.

كيف يعمل النسخ الاحتياطي للمفاتيح من الطرف إلى الطرف؟

لكل مستخدم Matrix مجموعة من مفاتيح الأجهزة (لكل جهاز، عابرة) ومفتاح توقيع متبادل (لكل حساب، طويل العمر). مفتاح التوقيع المتبادل الرئيسي هو ما يتيح للمستخدم إضافة جهاز جديد بدون إعادة التحقق من كل شيء؛ يفقده ويُحظر المستخدم من الرسائل E2E التاريخية حتى يُعيد التمفتح. ميزة "Secure Backup" في Element تُشفّر مفتاح التوقيع المتبادل بعبارة سر أو مفتاح استعادة وتخزّنه على جانب الخادم كنص مشفّر معتم — الخادم المنزلي يحمل الكتلة لكنه لا يستطيع قراءتها. وثّق خطوة مفتاح الاستعادة لمستخدميك عند التسجيل؛ فهي القطعة الوحيدة من UX التي تمنع الإغلاقات القابلة للتفادي.

هل يمكنني ترحيل غرفة من خادم منزلي آخر إلى خادمي؟

ليس مباشرة — الغرف كائنات فيدرالية، لا سجلات لكل خادم، لذا فإن "نقل" غرفة يعني ترقيتها (بدائية أصلية في Matrix تنشئ غرفة خَلَف وتترك القديمة كجذع مع إعادة توجيه) ودعوة المجموعة نفسها من المشاركين. معرّف الغرفة يتغير، الاسم المستعار يمكن أن يلحق. ترحيل حساب المستخدم المباشر بين الخوادم المنزلية بند طويل الأمد في قائمة أمنيات Matrix (قابلية نقل الحساب على خارطة طريق المواصفة)؛ اليوم تنشئ حساباً جديداً على خادمك وتطلب من الناس إعادة إضافتك.

ما هي قصة التعامل مع الإساءة لخادم منزلي فيدرالي؟

لدى Matrix بدائيات إشراف لكل غرفة (طرد، حظر، تنقيح، مديرو الغرفة) وبدائيات إشراف لكل خادم (قائمة حظر عبر Synapse module API، روبوت MJOLNIR لقوائم الحظر المُدارة، وضع قائمة السماح على مستوى الخادم للفيدرالية بدعوة فقط). لخادم منزلي مجتمعي، اشتراك قائمة الحظر بأسلوب MJOLNIR هو الإجابة القياسية — تفوّض تحديد spam/الإساءة لمجتمعات قوائم حظر مُدارة وتطبّق السياسة محلياً. سيادتك: أنت تختار أي قوائم حظر تتبعها.