حلّ المجتمع

كيفية تثبيت Immich على محرك أقراص مختلف في ZimaOS

A community guide for moving Immich away from the ZimaOS system drive, followed by troubleshooting reports, storage-layout questions, and an official recommendation to use ZimaOS migration tools where possible.

قد يستهلك Immich مساحة تخزين أكبر بكثير مما صُمم محرك نظام ZimaOS لاستيعابه، لا سيما مع ازدياد تحميلات الهاتف والصور المصغرة والفيديو المشفّر ونماذج تعلّم الآلة وقاعدة بيانات PostgreSQL. وقد حلّ دليل IceWhale Community الأصلي هذه المشكلة في أبريل 2025 عبر تغيير عمليات ربط وحدات تخزين محددة أثناء التثبيت المخصص في ZimaOS، بحيث تُخزَّن بيانات Immich على وحدة تخزين RAID بدلًا من محرك ZimaOS.

يفيد هذا الحل البديل في فهم كيفية توصيل الحاوية، لكن لا ينبغي اعتباره وصفة عامة صالحة حاليًا. فقد أفادت ردود لاحقة بفشل عمليات التثبيت، وإعادة تشغيل متكررة، وعدم سلامة حاوية PostgreSQL، بل وحتى تلف الصور المرفوعة بعد تجربة عمليات الربط. كما أضاف ZimaOS أدوات ترحيل مدمجة وحسّنها، بينما تستخدم إصدارات Docker Compose الحالية من Immich متغيرات على جانب المضيف مثل UPLOAD_LOCATION و موقع_بيانات_قاعدة_البياناتفي نظام حالي، استخدم أولًا مسار الترحيل المدمج في ZimaOS عندما يناسب هدفك، واحتفظ بالتعديل اليدوي لوحدات التخزين للحالات التي تحتاج فيها تحديدًا إلى تخطيط تخزين مخصص لـ Immich.

ما الذي غيّره دليل Immich الأصلي لـ ZimaOS لعام 2025

استخدم الدليل المجتمعي التثبيت المخصص في ZimaOS، أو شاشة إعدادات التطبيق بعد التثبيت، ومرّ على علامات تبويب الخدمة واحدة تلو الأخرى. وكان هدفه إعادة توجيه بيانات Immich الدائمة إلى موقع RAID أكبر، مع الإبقاء على المسارات داخل الحاوية التي يتوقعها Immich.

شاشة التثبيت المخصص لـ Immich في ZimaOS، وتعرض علامات تبويب إعداد الخدمة
يبدأ الدليل الأصلي من أبريل 2025 من شاشة التثبيت المخصص لـ Immich أو شاشة إعدادات التطبيق في ZimaOS.

قاعدة البيانات: انقل مسار المضيف، وأبقِ مسار الحاوية

في علامة تبويب قاعدة البيانات، غيّر الكاتب موقع التخزين على جانب ZimaOS إلى مسار RAID، مع الإبقاء على لاحقة مجلد قاعدة البيانات. وكان المبدأ المهم هو عدم إعادة كتابة المسار الموجود على اليمين داخل الحاوية. فقد يؤدي تغيير وجهة الحاوية إلى تعطل الخدمة، لأن PostgreSQL يتوقع وجود بياناته في المسار المحدد في حزمة Immich أو إعداد Compose.

إعادة توجيه ربط وحدة تخزين قاعدة بيانات Immich في ZimaOS إلى محرك تخزين مختلف
يغيّر المثال المجتمعي موقع قاعدة البيانات على المضيف مع الحفاظ على الوجهة داخل Immich.

تكشف وثائق Immich الحالية الخاصة بـ Docker Compose عن موقع المضيف هذا من خلال موقع_بيانات_قاعدة_البياناتيحذّر Immich أيضًا من أن مشاركات الشبكة غير مدعومة لقاعدة بيانات PostgreSQL، لذا ينبغي إبقاء قاعدة البيانات على وحدة تخزين محلية موثوقة متصلة مباشرة، بدلًا من مشاركة SMB أو NFS.

التعلم الآلي: أعد توجيه ذاكرة التخزين المؤقت للنماذج عند الحاجة فقط

أعاد الدليل الأصلي أيضًا توجيه ذاكرة التخزين المؤقت لنماذج التعلم الآلي على جانب المضيف، مع إبقاء مسار ذاكرة التخزين المؤقت على جانب الحاوية دون تغيير. ويمكن أن يوفر نقل ذاكرة التخزين المؤقت هذه مساحة على قرص النظام الصغير، رغم أنه أقل أهمية من حماية مكتبة الصور وقاعدة البيانات، إذ يمكن عادةً إعادة إنشاء النماذج التي تم تنزيلها.

ذاكرة التخزين المؤقت لنماذج التعلم الآلي في Immich مُعيّنة إلى مساحة تخزين بديلة في ZimaOS
نقل إعداد عام 2025 مسار المضيف لذاكرة التخزين المؤقت للنماذج إلى مجموعة التخزين المحددة.

خادم Immich: قسم وحدات التخزين الأكثر حساسية

كان تبويب خادم Immich هو الجزء الذي وجده الكاتب الأسهل للتعطيل. أُضيفت تعيينات مضيف إضافية بحيث تُوجَّه التحميلات وأدلة الوسائط المستمرة الأخرى إلى مساحة تخزين RAID. ويؤكد الموضوع مرارًا أنه لا ينبغي تغيير سوى المواقع المقصودة على جانب المضيف، وألا تُعدَّل المسارات على جانب الحاوية بلا داعٍ.

تعيينات وحدات تخزين خادم Immich المُهيأة لتخزين الوسائط على مصفوفة RAID في ZimaOS
يضيف المثال الأصلي في تبويب الخادم عدة تعيينات للمضيف لتخزين الوسائط على مصفوفة RAID.

لم يتطلب تبويب Redis تغييرات في التخزين في الشرح الأصلي. وهذا سبب آخر لعدم تطبيق بحث واستبدال شامل على كل إدخالات وحدات التخزين: إذ تختلف متطلبات الاستمرارية بين خدمات Immich.

أهم تحديث في النقاش اللاحق هو أن ZimaOS يوفر الآن سير عمل مخصصًا للترحيل. وقد حذّر رد من أحد أعضاء فريق IceWhale في الموضوع تحديدًا من أن نسخ بيانات التطبيقات يدويًا قد يسبب أخطاء، وأوصى باستخدام وظيفة الترحيل في معظم الحالات.

يسرد دليل ترحيل البيانات الحالي في ZimaOS ثلاث فئات تخزين قابلة للنقل: صور Docker، وبيانات تطبيقات Docker، وقواعد بيانات المستخدمين. والمسار المعتاد هو:

  1. افتح الإعدادات > ترحيل البيانات.
  2. حدّد فئة التخزين التي تريد نقلها.
  3. اختر تعديل الموقع.
  4. حدّد القرص الوجهة أو مساحة التخزين.
  5. راجع التحذير، وابدأ الترحيل، وانتظر تقرير الاكتمال.
واجهة الترحيل في ZimaOS التي أشار إليها أحد أعضاء فريق IceWhale في نقاش Immich
أوصى أحد أعضاء فريق IceWhale لاحقًا باستخدام وظيفة الترحيل في ZimaOS بدلًا من نسخ بيانات التطبيقات يدويًا.

تُعد عملية النقل المدمجة هذه نقطة بداية أفضل عندما يكون هدفك ببساطة إبقاء بيانات تطبيقات Docker بعيدة عن محرك نظام ZimaOS. كما تقلل من احتمال ترك المسارات أو الأذونات أو الروابط الرمزية في حالة غير متسقة بعد النقل اليدوي.

ماذا لو أردت تشغيل Immich على SSD مع وضع الصور على RAID؟

طرح سؤال لاحق في النقاش تخطيطًا عمليًا أكثر على المدى الطويل: إبقاء التطبيق والمكونات الحساسة للأداء على SSD، مع وضع مكتبة الصور الكبيرة على RAID. لم يختبر صاحب السؤال الأصلي هذا الإعداد المنفصل، لذلك لا يقدم النقاش نفسه وصفة موثقة لـ ZimaOS لتنفيذه.

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

في عملية نشر Immich قياسية حالية باستخدام Compose، تبدو قيم البيئة ذات الصلة مفاهيميًا كما يلي:

UPLOAD_LOCATION=/path/to/large-media-storage
DB_DATA_LOCATION=/path/to/local-database-storage

لا تلصق هذه المسارات بشكل أعمى في تعريف تطبيق ZimaOS أقدم. افحص أولًا إعداد Compose أو التثبيت المخصص المستخدم في حزمة Immich المحددة المثبتة لديك. يضم ملف Compose الرسمي الحالي لـ Immich ${UPLOAD_LOCATION} إلى حاوية الخادم و ${DB_DATA_LOCATION} إلى PostgreSQL، بينما قد تستخدم الإصدارات الأقدم والحزم المجتمعية وجهات داخلية مختلفة.

للاطلاع على أحدث التفاصيل الرسمية، راجع دليل تثبيت Immich باستخدام Docker Compose ودليل مكتبة Immich الخارجية.

لماذا يمكن أن تؤدي التغييرات اليدوية على وحدات التخزين إلى تعطيل Immich

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

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

  • وجهة الحاوية الخاطئة: يمكن تخصيص مسار المضيف، لكن يجب أن يتطابق المسار داخل الحاوية مع ما يتطلبه نشر Immich.
  • الأذونات: يجب أن تكون الوجهة قابلة للكتابة من قِبل مستخدم الحاوية أو الخدمة المالكة للملفات.
  • موقع قاعدة البيانات: تحتاج PostgreSQL إلى مساحة تخزين محلية موثوقة، ولا ينبغي وضعها على مشاركة شبكة غير مدعومة.
  • عمليات النقل غير المكتملة: قد يؤدي نسخ جزء فقط من شجرة بيانات Immich الموجودة يدويًا إلى عدم تزامن قاعدة البيانات ومتجر الوسائط.
  • عدم تطابق الإصدارات: تطوّر تخطيط وحدات تخزين Immich، لذلك قد لا تتطابق التعليمات المكتوبة لحزمة أقدم مع Immich v2 أو v3 أو تعريف لاحق في متجر تطبيقات ZimaOS.

قائمة تحقق أكثر أمانًا لترحيل مساحة تخزين Immich

  1. انسخ قاعدة بيانات Immich احتياطيًا والوسائط التي لا يمكن تعويضها قبل تغيير أي تعيين لوحدة تخزين.
  2. تأكد من إصدار Immich وحزمة متجر تطبيقات ZimaOS اللذين تستخدمهما.
  3. حدّد ما إذا كنت تريد نقل جميع بيانات التطبيق أم مكتبة الوسائط الكبيرة فقط.
  4. إذا كنت تنقل بيانات تطبيقات ZimaOS العامة، فجرّب الإعدادات > ترحيل البيانات قبل تعديل مسارات الحاويات الفردية.
  5. إذا كنت تستخدم تخطيطًا مخصصًا لـ Immich، فسجّل كل مسار مضيف ووجهة داخل الحاوية موجودين قبل تغيير أي شيء.
  6. أبقِ مسارات الوجهة داخل الحاويات دون تغيير، ما لم تتطلب وثائق إصدار Immich المحدد لديك مسارًا مختلفًا صراحةً.
  7. تأكد من أن نظام ملفات الوجهة موصول وقابل للكتابة قبل إعادة إنشاء الحاويات.
  8. لا تضع دليل بيانات PostgreSQL على مشاركة شبكة غير مدعومة.
  9. بعد الترحيل، ارفع مجموعة اختبار صغيرة وتحقق من الملفات الأصلية، والصور المصغرة، وتشغيل الفيديو، والبيانات الوصفية، والتحميلات الجديدة من الهاتف المحمول قبل نقل بقية مكتبتك.
  10. احتفظ بالنسخة القديمة إلى أن تتحقق من قاعدة البيانات وملفات الوسائط على وحدة التخزين الجديدة.

ما أضافه ردّ المجتمع إلى الدليل الأصلي

غيّرت الردود الأكثر فائدة تفسير الدليل الأصلي بثلاث طرق. أولًا، أوضحت أن التعيين اليدوي قد ينجح، لكنه يتأثر بإصدار التطبيق المحدد، وأذونات التخزين، وحالة إعادة التشغيل. ثانيًا، أراد المستخدمون تخطيطًا يجمع بين SSD وRAID بدلًا من نقل جميع مكونات Immich إلى المصفوفة نفسها. ثالثًا، أوصى أحد أعضاء فريق IceWhale باستخدام وظيفة الترحيل المضمنة، وحذّر من أن النسخ اليدوي قد يؤدي إلى أخطاء.

وبذلك يُفهم منشور عام 2025 الأصلي على أنه مثال عملي من المجتمع لوقته، وليس مواصفة ثابتة لكل إصدار لاحق من Immich أو ZimaOS. إذا لم تعد واجهة ZimaOS الحالية تعرض حقول التثبيت المخصص نفسها الظاهرة في لقطات الشاشة، فاتبع واجهة الترحيل الحالية وافحص إعداد Compose الخاص بالتطبيق المثبّت بدلًا من محاولة إعادة إنشاء الحقول القديمة.

الأسئلة الشائعة حول تخزين Immich في ZimaOS

هل يمكنني تثبيت Immich على محرك RAID بدلًا من محرك نظام ZimaOS؟

نعم، لكن ميّز بين نقل بيانات تطبيق ZimaOS وتصميم تخطيط مخصص لوسائط Immich. في إصدارات ZimaOS الحالية، استخدم أولًا وظيفة ترحيل البيانات المضمّنة عندما يكون هدفك نقل بيانات تطبيقات Docker. ومن الأفضل حجز تعيينات وحدات التخزين اليدوية لتصميم تخزين مقسّم ومدروس.

هل ينبغي تغيير مسار وحدة تخزين Immich الموجود على اليمين في التثبيت المخصص؟

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

هل يمكنني إبقاء Immich على SSD وتخزين الصور فقط على RAID؟

نعم، من حيث المبدأ، ويدعم Immich حاليًا اختيار موقع تحميل على المضيف، إلى جانب تحميل المكتبات الخارجية. يعتمد تعيين ZimaOS الدقيق على حزمة Immich وإصدارها المثبّت، لذا تحقّق من تعريف Compose الحالي قبل تغيير المسارات.

لماذا تصبح PostgreSQL في حالة غير سليمة بعد تغيير موقع التخزين؟

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

هل يمكنني ببساطة نسخ مجلد AppData الخاص بـ Immich إلى قرص آخر؟

هذا ليس المسار الحالي المفضّل في ZimaOS. فقد حذّر أحد أعضاء فريق IceWhale تحديدًا في المناقشة من أن النسخ اليدوي قد يسبب أخطاء، وأوصى باستخدام وظيفة الترحيل لنقل معظم التطبيقات.

هل لا يزال دليل لقطات الشاشة من أبريل 2025 ساريًا؟

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