دليل النشر

استضافة PhotoPrism على خادمك الافتراضي الخاص (VPS)

انشر على VPS Cloud ←

دليل عملي

استضافة PhotoPrism على خادمك الافتراضي الخاص (VPS)

الاستضافة الذاتية8 دقائق للقراءةعدد الخطوات: 5

PhotoPrism هو مدير صور مُستضاف ذاتيًا يصنّف صورك تلقائيًا حسب المكان والمحتوى واللون بفضل تعلّم آلي مدمج. على خادمك الافتراضي الخاص (‏VPS‏)، يحوّل مجموعة غير منظّمة إلى مكتبة قابلة للبحث، دون أي خدمة سحابية خارجية. يغطّي هذا الدليل التثبيت الكامل، وإعداد الوكيل العكسي ‏nginx‏، وضبط أداء ‏ML‏ على خادم متواضع، وتشخيص الأخطاء الشائعة، واستراتيجية نسخ احتياطي محكمة.

المحتويات· لماذا تستضيف PhotoPrism ذاتيًا على خادم VPS1/9
  1. 01لماذا تستضيف PhotoPrism ذاتيًا على خادم VPS
  2. 02مزايا PhotoPrism المُستضاف ذاتيًا
  3. 03المتطلبات الدقيقة: RAM وCPU والتخزين والشبكة
  4. 04نشر PhotoPrism خطوة بخطوة
  5. 05الوصول من الجوال: تطبيق iOS وAndroid
  6. 06تحسين ML على VPS بدون GPU: المتغيرات الأساسية
  7. 07تشخيص الأخطاء الأكثر شيوعاً
  8. 08استراتيجية النسخ الاحتياطي: originals وstorage وقاعدة البيانات
  9. 09PhotoPrism أم Immich: أيهما تختار

لماذا تستضيف PhotoPrism ذاتيًا على خادم VPS

بينما يستهدف ‏Immich‏ تجربة السحابة الكاملة مع نسخ احتياطي فوري من الجوال، يركّز ‏PhotoPrism‏ على فهرسة وتنظيم مكتبة صور موجودة مسبقًا، غالبًا ما تكون كبيرة، موضوعة على نظام ملفات. يحلّل مجلداتك، ويصنّف الصور بوسوم (جبل، شاطئ، سيارة)، ويكتشف الوجوه، ويقرأ بيانات ‏EXIF‏، ويحدّد المواقع الجغرافية للصور. يُنفَّذ كل ذلك محليًا عبر ‏TensorFlow‏ المدمج. استضافته على خادم ‏VPS‏ لها فائدة مزدوجة: تجميع أرشيف الصور المبعثر على قرص يمكن الوصول إليه من أي مكان، والاستفادة من الوسم التلقائي دون إرسال الصور أبدًا إلى خدمة طرف ثالث.

مزايا PhotoPrism المُستضاف ذاتيًا

  • وسم تلقائي بذكاء اصطناعي محلي: بحث بالكلمات المفتاحية والأماكن والألوان دون سحابة.
  • فهرسة الأرشيف الموجود مسبقًا على القرص، عبر ‏WebDAV‏ أو ‏rsync‏ أو تحميل شبكي.
  • اكتشاف المكرّرات والصور المتشابهة لتنظيف مجموعة مكتظّة.
  • خرائط تفاعلية مبنية على إحداثيات ‏GPS‏ المستخرجة من بيانات ‏EXIF‏ الوصفية.
  • وضع القراءة فقط متاح: يفهرس ‏PhotoPrism‏ دون تعديل ملفاتك الأصلية أبدًا.
  • واجهة ‏PWA‏ قابلة للتثبيت، يمكن الوصول إليها من أي متصفّح على شبكتك.

المتطلبات الدقيقة: RAM وCPU والتخزين والشبكة

‏PhotoPrism‏ يستهلك الذاكرة بمجرد دخول ‏TensorFlow‏ على الخط. إليك العتبات الواجب احترامها. بدون ‏GPU‏ مع تفعيل محرك ‏ML‏، خطّط لـ 2 غيغابايت ‏RAM‏ كحدٍّ أدنى: تحتها تُطلق عملية الفهرسة خطأ ‏OOM‏ ويُعيد الحاوية تشغيل نفسها في حلقة. مع ‏ML‏ مُفعَّل بالكامل (كشف الوجوه، تصنيف المشاهد)، 4 غيغابايت ‏RAM‏ هي المُوصى بها — العتبة المريحة لمكتبة من 10,000 إلى 50,000 صورة. نواة افتراضية واحدة تكفي للتصفّح، لكن الفهرسة الأولية لأرشيف كبير تستفيد من 2 إلى 4 أنوية. المنفذ الافتراضي هو 2342؛ تذكّر فتحه مؤقتًا للاختبار الأول قبل وضع الوكيل العكسي. للتخزين: خطّط لحجم originals زائد 30 إلى 40% للصور المصغّرة والذاكرة المؤقتة وفهرس ‏MariaDB‏. أضف مساحة ‏swap‏ لا تقل عن 2 غيغابايت إذا كان ‏VPS‏ لديك أقل من 4 غيغابايت ‏RAM‏.

نشر PhotoPrism خطوة بخطوة

  1. تجهيز الخادم VPS والأحجام

    ثبّت ‏Docker‏، ثم أنشئ مجلدين دائمين: /opt/photoprism/originals لصورك و/opt/photoprism/storage للذاكرة المؤقتة وقاعدة بيانات الفهرس.

  2. الإعلان عن PhotoPrism وMariaDB

    في docker-compose.yml، أضف خدمة mariadb بحجم مخصّص وخدمة photoprism. اربطهما عبر PHOTOPRISM_DATABASE_DRIVER=mysql.

  3. تحديد المسؤول ووضع الفهرسة

    عيّن PHOTOPRISM_ADMIN_PASSWORD، وفعّل PHOTOPRISM_READONLY=true إذا أردته أن يفهرس دون المساس بالملفات الأصلية. ثم شغّل المكدّس بـdocker compose up -d.

  4. الاستيراد وتشغيل الفهرسة الأولى

    انسخ صورك إلى مجلد originals عبر rsync أو ‏WebDAV‏، ثم شغّل التحليل بـdocker compose exec photoprism photoprism index.

  5. إعداد nginx كوكيل عكسي مع SSL Certbot

    ثبّت ‏nginx‏ و‏certbot‏ على المضيف. أنشئ كتلة server في /etc/nginx/sites-available/photoprism.conf تستمع على المنفذ 80، وتعيد التوجيه إلى 443، وتوكّل إلى http://127.0.0.1:2342. أضف توجيهات proxy_set_header الضرورية لكي يكتشف ‏PhotoPrism‏ مخطّط ‏HTTPS‏ بشكل صحيح. احصل على الشهادة بـcertbot --nginx -d gallery.yourdomain.com.

الوصول من الجوال: تطبيق iOS وAndroid

لا يقدّم ‏PhotoPrism‏ تطبيقًا أصليًا للنسخ الاحتياطي التلقائي كـ‏Immich‏، لكن واجهته ‏PWA‏ محسّنة للجوال: أضفها إلى الشاشة الرئيسية من ‏Safari‏ (‏iOS‏) أو ‏Chrome‏ (‏Android‏) للحصول على تجربة شبه أصلية. لتفعيل ‏PWA‏ يُشترط ‏HTTPS‏. للنسخ الاحتياطي من الهاتف، الحل التكميلي المعتاد هو ‏Syncthing‏ أو ‏rclone‏ لإرسال مجلد ‏DCIM‏ إلى originals على الخادم.

تحسين ML على VPS بدون GPU: المتغيرات الأساسية

على ‏VPS‏ قياسي بدون ‏GPU‏، يعمل ‏TensorFlow‏ بوضع المعالج ‏CPU‏. ثلاثة متغيرات بيئية تتيح ضبط التوازن بين الجودة والموارد. PHOTOPRISM_WORKERS يتحكّم في عدد خيوط الفهرسة المتوازية — اضبطه على عدد الأنوية المتاحة (2 أو 4). PHOTOPRISM_DISABLE_TENSORFLOW (القيمة true) يُعطّل محرك ‏ML‏ بالكامل: لا تصنيف تلقائي ولا كشف وجوه، لكن الفهرسة أسرع 3 إلى 5 مرات واستهلاك ‏RAM‏ يهبط إلى أقل من 1 غيغابايت. PHOTOPRISM_DETECT_NSFW (القيمة true) يُفعّل فلتر المحتوى غير اللائق بتكلفة إضافية على كل صورة: لا تُفعّله إلا عند الحاجة الفعلية. للخوادم بين 2 و4 غيغابايت ‏RAM‏: PHOTOPRISM_WORKERS=2 مع PHOTOPRISM_DETECT_NSFW=false و‏TensorFlow‏ مُفعَّل.

تشخيص الأخطاء الأكثر شيوعاً

‏OOM‏ عند التشغيل أو أثناء الفهرسة. علامته في سجلات ‏Docker‏: Killed أو signal: killed. الحل الفوري: إضافة ‏swap‏ (fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile). الحل الدائم: الانتقال إلى ‏VPS‏ بـ 2 غيغابايت على الأقل. فهرسة لا تنتهي. على مكتبة 50,000 صورة بنواتَين افتراضيتَين، الفهرسة الأولى الكاملة قد تستغرق 6 إلى 24 ساعة — هذا طبيعي. مشاكل الصلاحيات على الأحجام. يعمل ‏PhotoPrism‏ بـ ‏UID‏ 1000 افتراضيًا؛ إذا كان originals مملوكًا لـ ‏root‏ يفشل الوصول بصمت. الحل: chown -R 1000:1000 /opt/photoprism. الواجهة تحمّل لكن لا تظهر صور. تأكّد من تشغيل photoprism index فعلًا؛ بدء الخدمة لا يُشغّل الاستيراد تلقائيًا.

استراتيجية النسخ الاحتياطي: originals وstorage وقاعدة البيانات

نسخ احتياطي ‏PhotoPrism‏ الفعّال يُميّز بين ثلاثة مكوّنات. مجلد originals يحتوي ملفاتك الرئيسية: هو الجوهر الذي لا يُعوَّض. انسخه احتياطيًا خارج الموقع يوميًا بـ rclone sync. مجلد storage يحتوي الصور المصغّرة والذاكرة المؤقتة: يمكن إعادة بنائه بالكامل بفهرسة جديدة، فنسخة أسبوعية تكفي. قاعدة ‏MariaDB‏ تحتوي الفهرس والألبومات والوسوم اليدوية وبيانات الوجوه — عمل التنظيم الذي أنجزته. احتفظ بـ dump منتظم: docker compose exec mariadb mysqldump -u photoprism -p photoprism > /opt/backup/photoprism-db-$(date +%Y%m%d).sql مجدوَل في ‏cron‏ ومشفَّر قبل الإرسال الخارجي.

PhotoPrism أم Immich: أيهما تختار

مرّر الجدول أفقيًا

المعيارPhotoPrismImmich
الهدف الرئيسيفهرسة وتنظيم مكتبة صور موجودة مسبقًاسحابة صور كاملة مع نسخ احتياطي من الجوال
تطبيق الجوال‏PWA‏، دون نسخ احتياطي تلقائي أصليتطبيقات ‏iOS/Android‏ مع نسخ احتياطي تلقائي
قاعدة البيانات‏MariaDB‏ أو ‏SQLite‏‏PostgreSQL‏ مع امتداد شعاعي
بحث الذكاء الاصطناعيوسوم ‏TensorFlow‏ حسب المحتوى واللونبحث دلالي وتعرّف متقدم على الوجوه
RAM الموصى بها4 غيغابايت (2 غيغابايت كحدٍّ أدنى بدون ‏GPU‏)6 إلى 8 غيغابايت
نموذج الملفاتيقرأ مجلد ‏originals‏، مع وضع قراءة فقط متاحيدير شجرة الرفع الخاصة به
متعدد المستخدمينمحدود، موجَّه لمجموعة واحدةمكتبات معزولة لكل مستخدم
حالة الاستخدام المثلىأرشفة وتصفّح مجلدات صور كبيرةاستبدال ‏Google Photos‏ في الاستخدام اليومي

حمّل مجلد originals بوضع القراءة فقط (:ro في حجم ‏Docker‏) وفعّل PHOTOPRISM_READONLY=true. سيفهرس ‏PhotoPrism‏ ويولّد الوسوم والصور المصغّرة في حجم storage المنفصل، دون أي مخاطرة بتعديل أو حذف ملف أصلي.

نظّم أرشيف صورك باستقلالية تامة

يوفّر خادم ServOrbit Cloud VPS ذاكرة RAM والتخزين وDocker اللازمة لـPhotoPrism ومحرّك TensorFlow وMariaDB الخاص به. افهرس آلاف الصور واعثر عليها بكلمات مفتاحية قليلة، دون سحابة طرف ثالث.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة