SSD Nodes Learn 8GB RAM — $66/سنة
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-08-01

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 على الخادم. أضفها قبل تثبيت أي منهما.

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، لذلك لا يكون الوكيل العكسي اختياريًا إذا كنت تخطط لاستخدامه خارج المنزل.

لا يملك 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 من ذاكرة RAM للخادم أو أكثر. إنه أقرب خيار إلى Google Photos يمكنك استضافته بنفسك، وتجربة استخدام الهاتف هي أساسه. يغطي دليل تثبيت Immich خطوة بخطوة بالتفصيل حالات إيقاف العمليات بسبب نفاد الذاكرة ومشكلات الترقية.

شغّل PhotoPrism إذا كان لديك أرشيف صور محفوظ على القرص، أو إذا كنت تهتم بالخرائط والبيانات الوصفية والحفاظ على بنية مجلداتك، أو إذا كان VPS لديك يضم 4 GB من ذاكرة RAM وتفضّل مكتبة تعمل بدلاً من مكتبة تعتمد على 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، فهذا يعني أن kernel أنهى العملية بسبب نفاد الذاكرة. أضف swap، أو حدّد ذاكرة للحاوية لكي تُخفَّض مواردها بدلًا من إنهائها، أو عطّل التعلم الآلي بالكامل على جهاز بسعة 4 GB. يتوقف البحث عن العمل بدونه، بينما يعمل باقي Immich بشكل طبيعي.

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

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

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

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