لماذا تستضيف Immich ذاتيًا على خادم VPS
صورك من أكثر البيانات حساسية التي تعهد بها إلى السحابة: الوجوه والأماكن والعادات وتحديد المواقع الجغرافية. يعيد Immich إنتاج تجربة Google Photos، بما في ذلك تطبيقات الجوال، لكن على بنية تحتية تملكها. مكدّسه (stack) أكثر تطلّبًا من مكدّس الويكي: خادم تطبيق، وPostgreSQL مع الامتداد الشعاعي pgvecto.rs للبحث الدلالي، وRedis، وخدمة تعلّم آلي تحسب المتجهات (embeddings) للتعرّف على الوجوه والبحث بالكلمات المفتاحية. يتيح لك خادم VPS مخصّص عزل خدمة التعلّم الآلي النهِمة للموارد، وتحجيم التخزين وفق مكتبة صورك، ومنع استخدام صورك لتدريب نماذج طرف ثالث. وتبقى أنت المتحكّم في التشفير والنسخ الاحتياطي والوصول.
ما تقدّمه استضافة Immich الذاتية
- نسخ احتياطي تلقائي من iOS وAndroid فور التقاط أي صورة، مثل سحابة خاصة.
- التعرّف على الوجوه والبحث الدلالي يُنفَّذان على خادمك، دون إرسال أي بيانات إلى طرف ثالث.
- تخزين غير محدود يحدّده قرص خادمك VPS، دون حصة مفروضة ولا فوترة لكل غيغابايت.
- مشاركة الألبومات عبر رابط آمن تتحكم به ويمكنك إبطاله في أي وقت.
- دعم متعدد المستخدمين: لكل فرد من الأسرة أو الفريق مكتبته المعزولة.
- بيانات EXIF الوصفية والخرائط والخطوط الزمنية محفوظة محليًا، دون استغلال إعلاني.
المتطلبات العتادية والبرمجية
Immich هو الأكثر تطلّبًا في هذه السلسلة بسبب خدمة التعلّم الآلي الخاصة به. احسب 4 غيغابايت من RAM كحدّ أدنى، لكن يُنصح بـ6 إلى 8 غيغابايت إذا كان التعرّف على الوجوه يعالج مكتبة صور كبيرة. يتيح لك 2 إلى 4 vCPU استيعاب الفهرسة الأولية دون تجميد الواجهة. التخزين هو العامل الحاسم: خصّص مساحة واسعة، إذ تتجاوز المكتبة العائلية 100 غيغابايت بسرعة؛ وخادم VPS بقرص قابل للتوسّع مثالي. على الجانب البرمجي: Docker وdocker compose الإصدار v2، ونطاق (photos.yourcompany.com)، ومساحة تبديل (swap) كافية لامتصاص ذُرَى نموذج التعلّم الآلي خلال الاستيراد الأول.
نشر Immich خطوة بخطوة
تجهيز الخادم VPS والتخزين
حدّث النظام، وثبّت Docker، ثم أنشئ نقطة تحميل (mount point) مخصّصة للوسائط، مثل /mnt/photos، منفصلة عن قرص النظام. فعّل ما لا يقل عن 2 غيغابايت من swap لخدمة التعلّم الآلي.
جلب ملف compose الرسمي وملف .env
نزّل ملف docker-compose.yml وملف example.env من مستودع Immich باستخدام wget. أعِد تسميته إلى .env، ثم عيّن UPLOAD_LOCATION=/mnt/photos وكلمة مرور قاعدة البيانات وDB_DATA_LOCATION على حجم دائم (persistent volume).
فهم الخدمات الأربع
يشغّل المكدّس immich-server وimmich-machine-learning وredis وdatabase (PostgreSQL مع الامتداد الشعاعي). لا تستبدل صورة قاعدة البيانات بـPostgreSQL قياسي: فالامتداد pgvecto.rs لا غنى عنه للبحث الدلالي.
تشغيل المكدّس وإنشاء المسؤول
نفّذ docker compose up -d وانتظر تنزيل صور التعلّم الآلي الكبيرة الحجم. افتح المنفذ 2283 داخليًا، ثم أنشئ حساب المسؤول عبر معالج الويب قبل دعوة مستخدمين آخرين.
التأمين بوكيل عكسي وSSL
ضع Caddy أمام الخادم: photos.yourcompany.com { reverse_proxy immich-server:2283 }. زِد الحدّ الأقصى لحجم الرفع في الوكيل (client_max_body_size في Nginx) لأن مقاطع الفيديو قد تكون كبيرة، وإلا فستفشل عمليات الرفع من الجوال.
إعداد تطبيق الجوال
ثبّت Immich من App Store أو Play Store، وأدخِل https://photos.yourcompany.com كعنوان للخادم، وسجّل الدخول، ثم فعّل النسخ الاحتياطي التلقائي لألبوم الكاميرا لتكرار صورك الجديدة باستمرار.
خلال الاستيراد الأول الضخم، شغّل توليد الصور المصغّرة ومتجهات التعلّم الآلي (embeddings) في فترة قليلة الضغط، وراقب ذاكرة RAM باستخدام docker stats. إذا تشبّعت خدمة التعلّم الآلي، فيمكنك توجيهها مؤقتًا إلى النموذج الأخف في الإعدادات، ثم العودة إلى نموذج أكثر دقة بعد انتهاء الفهرسة الأولية. يمنع ذلك انهيار الخادم VPS تحت حِمل عملية المسح الأولى.