انقل Jellyfin عبر توثيق سلوكه الحالي أولًا، وحماية الحالة المستمرة، ثم إضافة الخدمات على مراحل قابلة للعكس ومختبرة.
هذا الإجراء مخصص لحاوية Docker عاملة تجاوزت أمرًا غير موثق أو تخطيطًا شاملًا في حاوية واحدة. الهدف ليس زيادة عدد الحاويات إلى الحد الأقصى، بل إنشاء خدمة Jellyfin قابلة لإعادة الإنتاج، مع نقاط تركيب وشبكات وأجهزة وإشارات صحة ونطاق نسخ احتياطي وخطة تراجع محددة بوضوح. أبقِ تخزين الوسائط مستقلًا عن حالة التطبيق، واحتفظ بالمثيل القديم حتى تنجح اختبارات القبول، ولا تضف إلا التبعيات التي يستطيع أفراد المنزل تشغيلها.
حدّد ما الذي يجب أن تغطيه المرونة
حدّد حالات الفشل التي ينبغي للمكدس الجديد التعامل معها: تعطل عملية Jellyfin، أو تحديث صورة سيئ، أو فقدان تخزين الإعدادات، أو عدم توفر الوكيل العكسي، أو إعادة تشغيل المضيف، أو فقدان المضيف بالكامل. تتطلب كل حالة عنصر تحكم مختلفًا. تساعد سياسة إعادة التشغيل بعد خروج العملية، لكنها لا تستعيد وحدة تخزين محذوفة ولا تصلح نقطة تركيب وسائط يتعذر الوصول إليها.
حدّد أهداف تعافٍ قابلة للقياس للإعدادات وحالة المشاهدة وتوفر الخدمة. قرّر مقدار التوقف وفقدان البيانات المقبولين، ومن سيتلقى التنبيه، وأي الأجزاء يمكن إعادة بنائها. يمنع هذا النطاق عملية نقل منزلية صغيرة من جمع قواعد بيانات ووكلاء ولوحات معلومات وأتمتة لا تقلل خطرًا محددًا.
جرد الحاوية العاملة
سجّل مرجع الصورة الدقيق، والأمر، ومتغيرات البيئة، والمنافذ المنشورة، والشبكات، وسياسة إعادة التشغيل، ومعرّفات المستخدمين والمجموعات، وتعيينات الأجهزة، وإعدادات DNS، والتسميات، وتركيب الإعدادات، وتركيب ذاكرة التخزين المؤقت، وتركيبات الوسائط، والأسرار. التقط أيضًا الملكية والأذونات على كل مسار في المضيف. لقطة شاشة من واجهة إدارة الحاويات ليست سجلًا كاملًا للنشر.
حوّل ذلك الجرد إلى تعريف Compose من دون تغيير السلوك. وتُعد طريقة تحويل كل خيار على حدة في دليل الترحيل من Docker run إلى Compose قيّمة لأنها تتعامل مع المرحلة الأولى باعتبارها قابلية إعادة الإنتاج، لا توسيعًا للميزات. ثبّت بصمة الصورة أو إصدارها قيد التشغيل حاليًا لعملية التحويل الأولية.
افصل بين الحالة المستمرة وذاكرة التخزين المؤقت والوسائط
اربط إعدادات Jellyfin وحالة قاعدة البيانات بمسار مستمر واضح الاسم. ضع ذاكرة التخزين المؤقت وملفات التحويل المؤقتة القابلة للحذف في مسار منفصل حتى لا تُخلط ببيانات النسخ الاحتياطي المهمة. ركّب الوسائط المملوكة بشكل مستقل وبصلاحية القراءة فقط حيثما يسمح سير العمل؛ فطبقة التطبيق المرنة يجب ألا تخلط حد الحماية الخاص بمكتبة وسائط كبيرة.
أوقف Jellyfin أو أوقف عملياته مؤقتًا قبل أول نسخ متسق للحالة، ما لم تضمن طريقة النسخ الاحتياطي اتساق التطبيق. سجّل الأذونات، والمجاميع الاختبارية أو أعداد الملفات، ووقت النسخ الاحتياطي، وموقع الاستعادة. لا تفترض أبدًا أن صورة الحاوية تحتوي على بيانات المستخدم: فتَعريف النشر والأسرار والحالة المستمرة ومراجع الوسائط مدخلات منفصلة للتعافي.
أثبت الاستعادة قبل تغيير الشبكة
أنشئ هدف استعادة مؤقتًا، وانسخ حالة التطبيق المحمية إليه، وشغّل خدمة Jellyfin المثبتة على منفذ بديل مع تركيب الوسائط بصلاحية القراءة فقط. تحقّق من المستخدمين والمكتبات وسجل المشاهدة والبيانات الوصفية والإضافات والتشغيل الفعلي لملفات نموذجية. احذف المثيل المؤقت وكرّر العملية من الإجراء المكتوب إذا اعتمدت أي خطوة على الذاكرة.
يجب أن يحافظ النسخ الاحتياطي العملي لـ Compose على ملف النشر ومدخلات البيئة ووحدات التخزين وأي تصدير متسق لقاعدة البيانات. يوضح هذا دليل النسخ الاحتياطي والترقية لـ Compose سبب عدم اعتبار نسخ صورة أو ملفات قاعدة بيانات قيد التشغيل وحده مسار تعافٍ كاملًا.
حوّل الخدمة إلى Jellyfin تعريفي
اختر نافذة صيانة، وأوقف الحاوية القديمة، وخذ النسخة الاحتياطية النهائية المتسقة للحالة، وامنع المثيل القديم من إعادة التشغيل تلقائيًا. شغّل خدمة Compose المكافئة باستخدام المسارات المستمرة نفسها وإمكانية الوصول إلى الأجهزة نفسها. أبقِ المسار العام دون تغيير فقط بعد نجاح فحوصات الصحة والتشغيل محليًا.
تحقّق من صحة الحاوية والسجلات وظهور المكتبة والوصول إلى أجهزة العتاد والتشغيل المباشر وتحويل واحد نموذجي ومعالجة الترجمة النصية وإعادة التشغيل. إذا تعذّر على الخدمة رؤية جهاز أو تركيب، فأوقف العملية واستعد الحاوية القديمة بدل تعديل طبقات متعددة تحت الضغط. يتمثل التراجع في الصورة المثبتة السابقة، والحالة السابقة للتحويل، ومعلمات التشغيل الأصلية.
أضف الخدمات المجاورة على حدود منفصلة
أضف وكيلًا عكسيًا فقط عندما يتطلب الوصول الوارد عن بُعد مسارًا مُدارًا بشكل منفصل. أضف المراقبة عند وجود إشارة صحة محددة وشخص سيتصرف بناءً عليها. أضف قناة تنبيهات عندما يجب اكتشاف حلقات إعادة التشغيل أو فقدان التخزين أو فشل النسخ الاحتياطي. تحتاج كل خدمة إلى مالك وقرار بشأن الحالة المستمرة ونطاق شبكة وطريقة تحديث وتأثير عند الفشل.
يُشرح السبب المعماري لهذه الحدود بشكل منفصل في توضيح ZimaSpace حول استخدام عمليات نشر Jellyfin لمكدسات الخدمات. أثناء الترحيل، طبّق هذا النموذج بحذر: اجمع المكونات التي يجب أن تتعافى معًا، وتجنب جعل التشغيل يعتمد على لوحات المعلومات أو الأتمتة الاختيارية.
اجعل الصحة والتحديثات والنسخ الاحتياطية قابلة للمراقبة
حدّد الصحة عند مسار المستخدم، لا باعتبارها مجرد عملية قيد التشغيل. تحقّق من استجابة Jellyfin محليًا، ووجود تركيب الوسائط، ووصول المسار العام إلى الخدمة المقصودة عند تفعيله، وإمكانية قراءة ملف معروف. وجّه الفحوصات الفاشلة إلى قناة إشعارات يستخدمها المشغّل بالفعل، مع سياق كافٍ للتمييز بين فشل التطبيق وفقدان التخزين أو الشبكة.
ضع تعريف Compose تحت إدارة الإصدارات، وأبقِ الأسرار خارج المستودع، وراجع تغييرات الصور قبل النشر. أتمت النسخ الاحتياطية فقط بعد نجاح استعادة يدوية. يوضح سير العمل في هذا دليل فحوصات صحة Jellyfin ومراقبته كيفية ترابط التعريفات والفحوصات والتنبيهات والنسخ الاحتياطية؛ واحتفظ بنقطة موافقة وتراجع للتحديثات التي قد تغيّر الحالة المخزنة.
نفّذ تدريبات فشل قبل إيقاف المسار القديم
أعد تشغيل المضيف، وأوقف Jellyfin بشكل غير متوقع، واجعل الوكيل غير متاح، وافصل مسار وسائط اختباريًا، واستعد حالة التطبيق في موقع مؤقت نظيف. أكّد التنبيه المتوقع وترتيب التعافي والسلوك الظاهر للمستخدم في كل تدريب. لا تحاكِ فقدانًا مدمرًا للتخزين على النسخة الوحيدة من الوسائط.
سجّل زمن التعافي وأي أوامر يدوية. فالحاوية التي تعيد التشغيل بسرعة لكنها تعود بمكتبة فارغة قد فشلت في اختبار الخدمة. والنسخة الاحتياطية الموجودة التي لا يمكن استعادتها ضمن النافذة المستهدفة قد فشلت في اختبار التعافي. أصلح هذه الحدود قبل إضافة مزيد من الخدمات.
اختتم الترحيل بعقد تشغيل مستقر
أوقف الحاوية الأصلية نهائيًا فقط بعد أن تصمد خدمة Jellyfin الجديدة أمام الاستخدام المنزلي المعتاد وتحديث مخطط وإعادة تشغيل المضيف وتدريب استعادة نظيف. خزّن المعلمات القديمة والنسخة الاحتياطية النهائية السابقة للتحويل وتعريف Compose الحالي وطريقة استعادة الأسرار وخريطة التركيبات وخطوات التراجع وفق سياسة الاحتفاظ المختارة.
توقف عن التوسع عندما يصبح المكدس قابلًا لإعادة الإنتاج ومراقبًا وقابلًا للتعافي ومفهومًا لمشغّله. أضف عقدة أو تبعية أخرى فقط عندما يتطلب ذلك شرط مقاس يتعلق بالسعة أو الثقة أو نطاق الفشل. تنشأ المرونة من الحالة المعروفة والتعافي المُدرّب عليه، لا من عدد الحاويات في المخطط.
إعداد التخزين الشبكي والخادم
المزيد للقراءة

كيف يغيّر التحليل والأتمتة الشبيهان بالذكاء الاصطناعي احتياجات التخزين والقدرة الحاسوبية لـ Jellyfin
تضيف الأتمتة والتحليلات المرتبطة بالذكاء الاصطناعي عمليات فحص وبيانات مشتقة ومعالجة بواسطة وحدة المعالجة المركزية/وحدة معالجة الرسومات وذاكرة تخزين مؤقت ومساحة عمل مؤقتة وجدولة...

كيفية دمج Jellyfin في شبكة شقة صغيرة أو منزل مستأجر
أنشئ شبكة Jellyfin ملائمة للإيجار تعتمد على عناوين محلية ثابتة، وتمديدات أسلاك محدودة، وأجهزة هادئة، ووصول عن بُعد يراعي CGNAT، وتغييرات قابلة للعكس.

كم عدد المستخدمين والمهام في الخلفية التي ينبغي لمضيف Jellyfin واحد دعمها؟
اعتبر مستخدمي Jellyfin والمهام الخلفية حملاً مشتركًا ضمن ميزانية واحدة؛ وتنتهي السعة عندما يصبح زمن استجابة التشغيل أو قوائم الانتظار أو ضغط الموارد متكررًا.

