SSD Nodes Learn 🎉 VPS من $4.99/شهر
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-08-07

PhotoPrism أم Immich: أي خادم صور يناسبك؟

مقارنة عملية بين PhotoPrism وImmich: الحد الأدنى الحقيقي للذاكرة، تطبيقات الهاتف والخرائط، وأوامر النسخ الاحتياطي الدقيقة لكل منهما على VPS.

PhotoPrism مقابل Immich: الإجابة المختصرة

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

اختر Immich إذا كانت المشكلة هي «هاتفي ممتلئ وأريد مغادرة Google Photos». اختر PhotoPrism إذا كانت المشكلة هي «لدي 400 GB من الصور على محرك أقراص ولا أستطيع العثور على أي شيء بينها». كلاهما مفتوح المصدر، ويعملان كحاويات Docker على VPS عادي، ويفهرسان مكتبتك ويتيحان البحث فيها من دون إرسال أي شيء إلى جهة خارجية.

الاختلاف في الفلسفة، ولماذا يحسم كل شيء

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

يقرأ PhotoPrism الملفات. تقوم بتركيب مجلد originals تتحكم فيه مسبقاً، ثم ينشئ PhotoPrism فهرساً له. تبقى شجرة المجلدات ملكك. إذا أزلت PhotoPrism غداً، فستبقى الصور في المجلدات نفسها وبالأسماء نفسها، وسيكون PhotoPrism قد أنشأ ملفات YAML جانبية بجانبها تصف ما تعلّمه.

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

الشهية إلى الموارد: Immich يحتاج إلى المزيد

تختلف الحدود الدنيا الموثقة للذاكرة كثيراً، وعلى VPS صغير يكون هذا العامل عادةً هو الحاسم.

ChartDocumented memory requirement, as of July 2026
The data behind this chart
[
  {
    "label": "Immich",
    "min_ram_gb": 6,
    "recommended_ram_gb": 8
  },
  {
    "label": "PhotoPrism",
    "min_ram_gb": 3,
    "recommended_ram_gb": 4
  }
]

يوثّق Immich أن الحد الأدنى هو 6 GB من RAM، وأن القيمة الموصى بها هي 8 GB، مع ملاحظة أن جهازاً بذاكرة 4 GB يمكنه تشغيله فقط عند تعطيل تعلّم الآلة. ويوثّق PhotoPrism الحاجة إلى 3 GB من الذاكرة الفعلية ونواتي CPU، ويذكر أن مقدار RAM يجب أن يتوافق مع عدد الأنوية.

الفارق حقيقي، وسببه حاوية تعلّم الآلة. يشغّل Immich نماذجه في خدمة immich-machine-learning منفصلة تحمّل نماذج CLIP (التدريب التبايني المسبق للغة والصور) واكتشاف الوجوه في الذاكرة. على جهاز بذاكرة 2 GB، تنهي النواة هذه الحاوية، وستظهر وهي تخرج بالرمز 137، وهذا هو الشكل الذي تظهر به عملية إنهاء بسبب نفاد الذاكرة من Docker. نماذج TensorFlow في PhotoPrism أصغر حجماً، ويتدهور أداؤه بدلاً من التوقف: على الأجهزة التي تحتوي على 1 GB أو أقل، يعطّل تحويل RAW وTensorFlow بدلاً من الانهيار.

يطلب المشروعان إعداد swap. وتذكر وثائق PhotoPrism صراحةً ضرورة توفير 4 GB على الأقل من swap على الخادم. أضف swap قبل تثبيت أي منهما.

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h

يجب أن يطبع free -h الآن سطراً من نوع Swap: يبيّن 4.0Gi. إذا طبع 0B، فهذا يعني أن swapon فشل، وعادةً يكون السبب أن نظام الملفات لا يدعم fallocate، ولذلك يكون sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 هو البديل. وتهم حدود ذاكرة الحاويات هنا أيضاً، ويُعد ضبط حدود الذاكرة في Docker Compose الطريقة التي تمنع خدمة واحدة شرهة من إسقاط الخادم بأكمله.

هناك متطلب آخر يغفل عنه بعض المستخدمين. يجب أن تكون قاعدة بيانات Postgres الخاصة بـImmich على نظام ملفات Unix عادي ذي ملكية وصلاحيات فعلية، وعلى تخزين محلي، وليس على مشاركة شبكية بأي حال. ويذكر PhotoPrism الأمر نفسه بشأن ملفات قاعدة البيانات الخاصة به. لا يُعد تشغيل أي من التطبيقين آمناً عند وضع قاعدة بياناته على مخزن كائنات موصول.

كيفية تثبيت كل تطبيق

يتكوّن تثبيت كل تطبيق من ملف Compose يوفّره المورّد وأمر واحد. أعد إعداد Docker Engine وإضافة Compose أولاً، كما هو موضح في دليلنا إلى Docker Compose على VPS.

ينشر Immich ملف Compose وملف بيئة نموذجي مع كل إصدار.

sudo mkdir -p /opt/immich && cd /opt/immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

عدّل .env قبل بدء أي شيء. يمثّل UPLOAD_LOCATION المكان الذي ستُحفظ فيه ملفاتك الأصلية، ويجب تغيير DB_PASSWORD من القيمة الافتراضية باستخدام الأحرف A-Za-z0-9 فقط، لأن الأحرف الخاصة تتسبب في فشل سلسلة الاتصال. ثم شغّله.

docker compose up -d
docker compose ps

تستجيب واجهة الويب على المنفذ 2283. يصبح أول حساب يُسجَّل عبر هذه الصفحة حساب المسؤول، لذا افتح الصفحة وسجّل الحساب فوراً بدلاً من ترك النسخة متاحة على الإنترنت.

يأتي PhotoPrism مع ملف Compose واحد يتضمن MariaDB مسبقاً.

sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yaml

افتح compose.yaml وغيّر PHOTOPRISM_ADMIN_PASSWORD قبل التشغيل الأول. توضّح الوثائق ذلك صراحة: يبدأ التطبيق باستخدام كلمة المرور الأولية الموجودة في ذلك الملف، والحد الأدنى لطولها هو 8 أحرف، ويجب عدم استخدام القيمة الافتراضية مطلقاً على خادم عام. اضبط وحدة التخزين originals لتشير إلى المجلد الذي يحتوي على صورك في الوقت نفسه.

docker compose up -d
docker compose logs -f photoprism

يستجيب PhotoPrism على المنفذ 2342 باستخدام المستخدم admin. يجب عدم تعريض أي من التطبيقين مباشرة للإنترنت. ضع reverse proxy مع TLS (أمان طبقة النقل) أمامهما، وفق بنية الإعداد نفسها المستخدمة في Nextcloud مستضاف ذاتياً مع Docker وTLS والنسخ الاحتياطية.

أيّهما يوفّر تطبيقاً أفضل للهاتف؟

هنا يظهر أكبر اختلاف بين المشروعين، وهو السبب الذي يدفع معظم المستخدمين في النهاية إلى اختيار Immich.

يوفّر Immich تطبيقات رسمية لنظامي Android وiOS. تنفّذ هذه التطبيقات نسخاً احتياطية في الخلفية لمجلد صور الكاميرا، ما يعني أن الصور الجديدة تغادر الهاتف دون الحاجة إلى فتح أي تطبيق. يتطلب التطبيق نقطة نهاية HTTPS، لذلك لا يكون الـReverse Proxy اختيارياً إذا كنت تخطط لاستخدامه خارج المنزل.

لا يوفّر PhotoPrism تطبيقاً أصلياً رسمياً. يوفّر تطبيق ويب تقدمياً يمكنك إضافته إلى الشاشة الرئيسية من المتصفح، كما يوضّح أن WebDAV (تأليف الويب وتعيين إصداراته) هو طريقة المزامنة من الهاتف. يوصي المشروع باستخدام تطبيق خارجي يسمى PhotoSync لهذا الغرض، مع توجيهه إلى الدليل /import/ أو /originals/ عبر WebDAV. يعمل هذا الحل، لكنه يعتمد على تطبيق خارجي مدفوع ينفّذ داخل Immich الوظيفة نفسها ضمن تطبيقه الخاص.

إذا كان النسخ الاحتياطي التلقائي من هواتف عدة أفراد في العائلة هو المتطلب، فالحسم واضح: Immich.

ما الذي يقدمه تعلّم الآلة فعلياً

ينفّذ Immich بحثاً دلالياً في مكتبتك باستخدام CLIP، لذلك يعثر استعلام مثل "دراجة حمراء في الثلج" على صور لم يضع أحد لها وسوماً من قبل. كما يكتشف الوجوه ويجمعها في مجموعات، ويكتشف الصور المكررة. تستغرق فهرسة استيراد كبير باستخدام CPU ساعات في الخلفية، وهذا طبيعي ولا يتطلب GPU (وحدة معالجة الرسومات).

يصنّف PhotoPrism الصور باستخدام TensorFlow إلى تسميات، ويكتشف الوجوه ويجمعها ضمن أشخاص، ويقرأ البيانات الوصفية للموقع لإنشاء خريطة للأماكن. الخريطة هي الميزة التي تجعل المستخدمين يستمرون في استخدامه: فالمكتبة المفهرسة حسب مكان التقاط الصور توفر طريقة مختلفة فعلاً لتصفح صور عشرين عاماً. يتوفر التعرف على الوجوه في إصدار Community المجاني. وتضيف عضويتا Essentials وPlus المدفوعتان ميزات إضافية، مثل طبقات خرائط أكثر تفصيلاً، وأدوار مستخدمين إضافية، وواجهة لإدارة المستخدمين، وتبدأ تكلفتهما من بضعة يوروهات شهرياً اعتباراً من July 2026.

Immich مجاني بالكامل ولا يتضمن مستوى مدفوعاً. نواة PhotoPrism مجانية، مع ميزات إضافية مدفوعة اختيارياً.

تحدد النسخ الاحتياطية ما إذا كنت ستحتفظ بالبيانات

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

في Immich، أفرغ قاعدة البيانات من حاوية Postgres وانسخ موقع الرفع.

docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gz

بعد ذلك، انسخ احتياطياً UPLOAD_LOCATION. المجلدات التي تحتوي على بيانات لا يمكن استبدالها هي upload وlibrary وprofile. يمكن إعادة إنشاء المجلدين thumbs وencoded-video، لكن ذلك يستهلك ساعات من وقت CPU. لا تعيد نسخة قاعدة البيانات وحدها أي بيانات، لأنها تحتوي على البيانات الوصفية فقط.

في PhotoPrism، للفهرس أمره الخاص.

docker compose exec photoprism photoprism backup -i -f

يكتب ذلك تفريغ SQL ضمن storage/backup/. بعد ذلك، انسخ المجلد originals والمجلد storage. يكتب PhotoPrism أيضاً ملفات YAML جانبية تصف كل صورة، لذلك يمكن إعادة إنشاء فهرس مفقود من الملفات وحدها. وهذه ميزة مهمة لأرشيف تخطط للاحتفاظ به لعقود.

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

ما الخيار الذي ينبغي تشغيله

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

شغّل PhotoPrism إذا كان لديك أرشيف صور موجود مسبقاً على القرص، أو إذا كنت تهتم بالخرائط والبيانات الوصفية والحفاظ على بنية مجلداتك، أو إذا كان VPS لديك بذاكرة 4 GB وكنت تفضّل مكتبة تعمل فعلاً بدلاً من مكتبة تعتمد على swapping. إنه أداة أفضل لتنظيم الصور، كما أنه أخف ضغطاً على الأجهزة محدودة الموارد.

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

FAQ

هل يمكن لـPhotoPrism وImmich مشاركة مجلد الصور نفسه؟

ليس بأمان في كلا الاتجاهين. يقرأ PhotoPrism مجلد originals ويكتب ملفات YAML جانبية بجوار صورك، بينما يتوقع Immich أن يدير محتويات موقع الرفع الخاص به. يمكنك توجيه PhotoPrism إلى نسخة للقراءة فقط من مجلد library الخاص بـImmich لتصفحه، لكن لا تسمح للتطبيقين بإدارة الملفات نفسها، لأن قالب تخزين Immich قد ينقل الأصول أو يعيد تسميتها ضمن PhotoPrism أثناء الفهرسة.

هل Immich مستقر بما يكفي للاحتفاظ بالنسخة الوحيدة من صوري؟

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

لماذا تستمر حاوية التعلم الآلي في Immich في إعادة التشغيل؟

يتم إنهاؤها لأنها تستخدم ذاكرة أكبر من اللازم. شغّل docker compose ps وابحث عن خروج خدمة التعلم الآلي بالرمز 137، وهو رمز قاتل نفاد الذاكرة في النواة. أضف swap، أو حدّد مقدار الذاكرة للحاوية لكي يجري خنقها بدلاً من إنهائها، أو عطّل التعلم الآلي بالكامل على جهاز بسعة 4 GB. سيتوقف البحث عن العمل من دونه، بينما يعمل باقي Immich بصورة طبيعية.

هل يحتاج PhotoPrism إلى MariaDB، أم تكفي SQLite؟

تعمل SQLite وتناسب مكتبة شخصية، لكن PhotoPrism يحدّ نفسه إلى أربعة عمال عند استخدامها، وتوصي الوثائق بالانتقال إلى MariaDB لأنها تتعامل مع التزامن العالي بصورة أفضل. يتضمن ملف compose الذي يوزعه المشروع MariaDB بالفعل، ولذلك فإن المسار الموصى به هو أيضاً المسار الافتراضي.

ما مقدار مساحة القرص التي ينبغي تخصيصها فوق حجم مكتبتي؟

أضف 10 إلى 20 بالمئة فوق حجم ملفاتك الأصلية، لأي من التطبيقين. يغطي ذلك الصور المصغرة المُنشأة ومعاينات الفيديو المحوّلة. تحتاج مجموعة بحجم 200 GB إلى وحدة تخزين بسعة تقارب 300 GB بعد ترك مساحة لقاعدة البيانات، والنسخة الاحتياطية المحلية، والنمو المستقبلي.