حلّ المجتمع

ثبّت تطبيق Docker مخصّصًا على ZimaOS: مثال Subsyncarr

A June 2026 beginner thread about installing Subsyncarr outside the ZimaOS App Store. A community reply explained how Docker image, volumes, environment variables, and SCAN_PATHS map into the manual installer; current Subsyncarr releases now also expose a Web UI on port 3000.

يصبح نموذج ZimaOS «تثبيت تطبيق مخصص» أسهل بكثير عند إدراك أنه يترجم مفاهيم Docker Compose العادية إلى حقول. يُعد موضوع المصدر من يونيو 2026 مثالًا قويًا للمبتدئين، لأن المستخدم كان يشغّل Jellyfin بالفعل، وأراد إضافة Subsyncarr لمعالجة الترجمات، وكان يخشى التأثير في خادم الوسائط الحالي.

لم تكتفِ إجابة المجتمع بقول «الصق ملف Compose». بل أوضحت القيم التي تنتمي إلى حقول صورة Docker والوسم والشبكة والمجلدات ومتغيرات البيئة والأجهزة وأمر الحاوية، والأهم من ذلك سبب ضرورة استخدام متغيرات البيئة مثل SCAN_PATHS لمسارات مرئية داخل الحاوية.

اقرأ نموذج ZimaOS باعتباره إعدادًا لـ Docker

نموذج تطبيق مخصص في ZimaOS يعرض صورة Docker والوسم والعنوان وواجهة الويب والشبكة والمنافذ والمجلدات ومتغيرات البيئة والأجهزة والأمر
يعرض المُثبّت اليدوي إعدادات الحاوية القياسية كحقول منفصلة بدلًا من ملف YAML خام لـ Compose.

في المثال المصدر، عيّن المجتمع حقول Compose الأساسية تقريبًا كما يلي:

  • صورة Docker ← mrorbitman/subsyncarr
  • الوسم ← وسم الإصدار المطلوب، وكان تاريخيًا الأحدث
  • العنوان ← اسم مألوف للتطبيق، مثل Subsyncarr
  • الشبكة → bridge ما لم تتطلب التعليمات الحالية للتطبيق شيئًا آخر

استخدم مثال Compose من المصدر باعتباره المرجع الأساسي

مثال على Docker Compose لـ Subsyncarr يوضّح الصورة ومجلدات الوسائط وجدول cron ومسارات الفحص والمجلدات المستثناة ومحركات المزامنة
المهمة الصحيحة هي ترجمة كل إعداد من إعدادات Compose إلى ZimaOS من دون تغيير ما تتوقعه الحاوية داخليًا.

واصل Subsyncarr التطور، لذا قارن أي لقطة شاشة قديمة من المجتمع مع إعدادات حاوية Subsyncarr الحالية قبل التثبيت.

المجلدات هي الجزء الأهم

يتكوّن مجلد Docker من جانبين:

  • مسار المضيف: مجلد ZimaOS الفعلي الذي يحتوي على الأفلام أو البرامج التلفزيونية أو الأنمي أو بيانات التطبيق.
  • مسار الحاوية: المسار الذي يراه Subsyncarr داخل نظام ملفاته الخاص.

يمكن أن يبدو التعيين مفاهيميًا على النحو التالي:

المضيف: /DATA/Media/Movies
الحاوية: /movies

يعتمد مجلد المضيف الدقيق على موقع مكتبة Jellyfin الفعلي. لا تنسخ مسار مستخدم آخر. تحقّق من تطبيق الملفات في ZimaOS أو افحص تعيينات وحدات التخزين الحالية في Jellyfin، حتى تشير الحاويتان إلى الوسائط نفسها.

يُعدّ الشرح الحالي لـ كيفية تحوّل مجلدات تخزين ZimaOS الفعلية إلى مسارات حاويات مفيدًا قبل إضافة أي تطبيق وسائط مخصص.

يجب أن يتطابق SCAN_PATHS مع جانب الحاوية

كانت هذه هي النقطة التعليمية الأساسية في الرد الأصلي. إذا كان مجلد المضيف مربوطًا إلى /movies داخل الحاوية، وعندها ينبغي أن يفحص Subsyncarr /movies.

الصحيح:

SCAN_PATHS=/movies,/tv,/anime

غير صحيح عندما تكون هذه المسارات مسارات مضيف فقط:

SCAN_PATHS=/DATA/Media/Movies

لا يمكن للحاوية رؤية مسارات مضيف ZimaOS العشوائية ما لم تُربط تلك المجلدات بها صراحةً.

ترجم متغيرات البيئة واحدًا تلو الآخر

تضمن مثال Compose المصدر متغيرات مثل المنطقة الزمنية، وجدول cron، ومسارات الفحص، والمجلدات المستثناة، ومحركات المزامنة. أضِف كل متغير منها إلى قسم متغيرات البيئة باستخدام دلالات القيم نفسها التي يتوقعها التطبيق في المنبع.

لا تُجرِ «تحسينات» على تعبير cron أو تُعدّل اسم مسار الحاوية أثناء الترجمة. أعد أولًا إنتاج إعدادات المنبع بأمانة، ثم أجرِ التغييرات بعد التأكد من أن التطبيق يعمل.

الإصدارات الحالية من Subsyncarr تتضمن واجهة ويب

أفاد ردّ المجتمع لعام 2026 بترك حقلي واجهة الويب والمنافذ فارغين ما لم تذكر الوثائق أن التطبيق يوفّر إحداهما. كانت تلك النصيحة صحيحة لتطبيق غير معروف، لكن الإصدارات الحالية من Subsyncarr توفّر الآن واجهة ويب على المنفذ 3000 وبيانات تطبيق دائمة.

إذا كنت تريد لوحة التحكم، فانشر منفذًا على المضيف إلى منفذ الحاوية 3000، واضبط حقل واجهة الويب في ZimaOS على عنوان المضيف ذلك. إذا كان المنفذ مستخدمًا بالفعل، فغيّر جانب المضيف فقط، ما لم تذكر الجهة المطوِّرة أن منفذ الخدمة الداخلي نفسه قابل للتهيئة.

احفظ بيانات تطبيق Subsyncarr الخاصة به

مجلدات الوسائط ليست وحدات التخزين الوحيدة المهمة. لدى Subsyncarr الحالي أيضًا بيانات دائمة خاصة به. احتفظ بحالة التطبيق هذه في مجلد على المضيف يستمر بعد تحديثات الحاوية، وأدرجه في النسخ الاحتياطية.

تكتسب PUID وPGID أهمية عند الحاجة إلى كتابة ملفات الترجمة

يحتاج معالج الترجمة إلى أكثر من صلاحية القراءة. فقد يحتاج إلى إنشاء ملفات الترجمة الموجودة بجوار الوسائط أو إعادة تسميتها أو تعديلها. يدعم Subsyncarr الحالي PUID وPGID، لذا اجعل مستخدم الحاوية متوافقًا مع الملكية أو أذونات المجموعة لمجلدات الوسائط إذا نجحت عمليات الفحص لكن فشلت كتابة ملفات الترجمة.

اترك حقلي الأجهزة وأمر الحاوية فارغين ما لم تتطلبهما الجهة المطوِّرة

أوصت إجابة المجتمع بشكل صحيح بعدم ملء كل حقل لمجرد أنه موجود. يُستخدم تعيين الجهاز للأجهزة مثل وحدات معالجة الرسومات أو الأجهزة التسلسلية. يتجاوز أمر الحاوية أمر بدء التشغيل الافتراضي للصورة. لا ينبغي إضافة أي منهما من دون متطلب محدد من الجهة المطوِّرة.

لماذا لا ينبغي أن يتسبب هذا في تعطيل Jellyfin

إضافة حاوية منفصلة لا تُجري أي تعديل على Jellyfin لمجرد أن التطبيقين يقرآن مجلد الوسائط نفسه. يكمن الخطر الأكبر في الأذونات: إذا سُمح لـ Subsyncarr بإعادة تسمية الملفات أو الكتابة فيها، فتأكد من أن إعداداته لا تلمس سوى مسارات الوسائط والترجمة التي تقصدها.

ابدأ بمكتبة اختبار صغيرة قبل توجيه التطبيق إلى المجموعة بأكملها.

الأسئلة الشائعة حول تطبيقات ZimaOS المخصصة

هل يستخدم SCAN_PATHS مسار المضيف أم مسار الحاوية؟

استخدم مسارات الحاوية التي أنشأتها تعيينات وحدات التخزين لديك.

هل ينبغي أن أملأ كل حقل في نموذج التطبيق المخصص في ZimaOS؟

لا. اضبط المنافذ والأجهزة والأوامر والحقول الأخرى التي يحتاجها التطبيق فعليًا فقط.

هل يحتوي Subsyncarr الحالي على واجهة ويب؟

نعم. تعرض الإصدارات الحالية لوحة تحكم على المنفذ 3000.

هل يمكن لـ Subsyncarr استخدام مجلدات الوسائط نفسها التي يستخدمها Jellyfin؟

نعم، ما دام كلا الحاويتين يربطان المجلدات نفسها على المضيف الحقيقي، وكانت أذوناتهما مناسبة.