حلّ المجتمع

دليل إصلاح مشكلة عدم صحة Matrix Synapse على CasaOS باستخدام Docker

A CasaOS user could not get a Matrix Synapse container healthy and had no clear diagnostic path; current Synapse docs provide an official Docker workflow.

إذا أظهر Matrix Synapse على CasaOS رسالة «الحاوية غير سليمة»، فابدأ بسجلات الحاوية وملف homeserver.yaml المُنشأ بدلًا من إعادة التثبيت بشكل عشوائي. لدى Synapse صورة Docker رسمية، لكن خادم المنازل المخصص للاستخدام الإنتاجي يحتاج أيضًا إلى إعدادات وبيانات مستديمة، واسم خادم مناسب، وPostgreSQL، وخطة لـ HTTPS والاتحاد.

يُعد SQLite مناسبًا للاختبار، لكن توصي وثائق Synapse الحالية باستخدام PostgreSQL في جميع عمليات التثبيت الفعلية تقريبًا. قد تبدأ الحاوية ثم تظل غير سليمة عندما يفشل إعدادها أو قاعدة بياناتها أو صلاحياتها أو ترحيلها عند بدء التشغيل.

استخدم صورة Synapse الرسمية

يوثّق دليل تثبيت Synapse الحالي ghcr.io/element-hq/synapse بوصفها صورة حاوية رسمية.

أنشئ الإعداد الأولي

أنشئ مجلدًا مستديمًا ثم أنشئ الإعدادات مرة واحدة قبل بدء التشغيل العادي:

mkdir -p /DATA/AppData/synapse
docker run --rm -it   -v /DATA/AppData/synapse:/data   -e SYNAPSE_SERVER_NAME=matrix.example.com   -e SYNAPSE_REPORT_STATS=no   ghcr.io/element-hq/synapse:latest generate

استبدل النطاق التجريبي باسم خادم Matrix الذي تنوي الاحتفاظ به.

تحقق من سبب عدم سلامة الحاوية

docker ps -a | grep synapse
docker inspect synapse --format '{{json .State.Health}}'
docker logs --tail 200 synapse

ابحث عن أخطاء YAML، أو الملفات المفقودة، أو فشل الصلاحيات، أو أخطاء الاتصال بقاعدة البيانات، أو عمليات ترحيل لا تكتمل.

استخدم PostgreSQL في بيئة الإنتاج

يشرح دليل PostgreSQL الخاص بـ Synapse الحالي إعداد قاعدة البيانات المدعوم. احرص على استدامة بيانات PostgreSQL ونسخها احتياطيًا مع حالة Synapse.

لا تغيّر server_name لاحقًا من دون تخطيط

تُشتق معرّفات Matrix الخاصة بك من اسم الخادم، مثل @user:example.com. اختر النطاق طويل الأمد قبل دعوة المستخدمين.

HTTPS مطلوب للاستخدام العملي

يستمع Synapse عادةً داخليًا عبر HTTP، وغالبًا على المنفذ 8008. استخدم وكيلًا عكسيًا مع HTTPS للعملاء والاتحاد بدلًا من كشف منفذ الحاوية الخام للعامة.

يتطلب الاتحاد إعدادات إضافية لـ DNS والوكيل

إذا أردت التواصل مع خوادم Matrix أخرى، فاضبط اسم الخادم العام وHTTPS واكتشاف الاتحاد بشكل صحيح. ويمكن أن يكون الاختبار المحلي فقط أبسط بكثير.

انسخ احتياطيًا أكثر من الحاوية

احتفظ بالملف homeserver.yaml ومفاتيح التوقيع والوسائط المرفوعة وقاعدة بيانات PostgreSQL. إن إعادة سحب الصورة لا تستعيد هوية خادم المنازل.

يوفر دليل استكشاف أخطاء Docker وإصلاحها النموذج العام لتصحيح أخطاء الحاويات.

تحقق من ملكية الملفات في مجلد البيانات المستديم

إذا أظهر سجل الحاوية رسالة تفيد برفض الإذن أثناء قراءة homeserver.yaml أو مفاتيح التوقيع أو الوسائط، فأصلح ملكية مجلد بيانات Synapse المرتبط للمستخدم والمجموعة المتوقعين من الصورة. تجنب جعل شجرة بيانات CasaOS بأكملها قابلة للكتابة من الجميع.

انتظر اكتمال عمليات ترحيل قاعدة البيانات قبل الحكم على الحالة

بعد الترقية أو أول اتصال بـ PostgreSQL، قد يحتاج Synapse إلى وقت لتشغيل عمليات ترحيل المخطط. راقب السجلات بدلًا من إعادة تشغيل الحاوية مرارًا، لأن مقاطعة عمليات الترحيل قد تجعل التشخيص أصعب.

اختبر واجهة API المحلية قبل الوكيل العكسي

تأكد من أن نقطة نهاية HTTP الداخلية لـ Synapse تستجيب من مضيف CasaOS قبل إضافة HTTPS أو DNS أو الاتحاد. إذا كانت واجهة API المحلية غير سليمة، فلن يتمكن الوكيل العكسي من إصلاحها.

الأسئلة الشائعة

لماذا تكون Synapse غير سليمة؟

تحقق من السجلات ومخرجات الحالة بحثًا عن أخطاء في الإعداد أو الصلاحيات أو قاعدة البيانات أو عمليات الترحيل؛ فلم يقدّم موضوع المصدر سببًا واحدًا مؤكدًا.

هل يمكنني استخدام SQLite؟

نعم، للاختبار. توصي وثائق Synapse الحالية باستخدام PostgreSQL في جميع عمليات التثبيت الإنتاجية تقريبًا.

ما المنفذ الذي تستخدمه Synapse داخليًا؟

تكشف إعدادات Docker الشائعة واجهة API الخاصة بالعميل والخادم عبر المنفذ 8008 خلف وكيل عكسي.

هل أحتاج إلى Element؟

لا. Synapse هو خادم المنازل؛ أما Element فهو أحد العملاء أو واجهات الويب الممكنة.