STACKDUST
EN
رسم توضيحي تحريري لخادم استضافة صور محلي ومستقل يدمج التعرف على الوجوه بالذكاء الاصطناعي وتطبيقات المزامنة الذاتية بأسلوب STACKDUST الداكن

Immich: الدليل الشامل لاستضافة وتدشين بديل Google Photos بالذكاء الاصطناعي المحلي


استعادة الذكريات: إدارة الصور العائلية بذكاء اصطناعي محلي وبديل حقيقي لـ Google Photos

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

بُني Immich من الألف إلى الياء ليوفر نفس التجربة السلسة لتطبيقات السحابة التجارية: تطبيقات هواتف أصلية وسريعة لنظامي iOS و Android مع دعم المزامنة في الخلفية، ومحرك تعلم آلي محلي للتعرف على الوجوه والبحث بالنصوص (CLIP Semantic Search)، وخريطة تفاعلية للرحلات، وإدارة الألبومات المشتركة بين أفراد العائلة.

ما هو Immich؟

Immich هو نظام متكامل لإدارة الصور ومقاطع الفيديو عالي الأداء ومفتوح المصدر (AGPL-3.0). يتكون النظام من خادم مركزي، ومحرك تعلم آلي منفصل (Immich Machine Learning)، وقاعدة بيانات PostgreSQL مدعومة بإضافة المتجهات pgvector، ومستودع تخزين وسائط مرن يدعم أقراص التخزين الشبكية (NAS / ZFS Pools).

يوفر النظام سرعة فائقة في استعراض آلاف الصور بفضل توليد الصور المصغرة المتعددة المقاسات بصيغة WebP، ومعالجة مقاطع الفيديو وإعادة ترميزها محليًا لتناسب المتصفحات دون استهلاك مفرط للبيانات.

لماذا لم تسمع به من قبل؟

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

كيف يعمل تحت الغطاء؟

تتألف البنية المعمارية لـ Immich من عدة خدمات متعاونة:

  1. الخادم الميكروي المركزي (Immich Server): يدير المصادقة، وجلسات المستخدمين، واستقبال تدفقات الرفع من الهواتف عبر واجهة REST API.
  2. محرك التعلم الآلي (Immich Machine Learning): يشغل نماذج Python متخصصة لتحليل ملامح الوجوه (Face Recognition) والبحث الدلالي عن محتويات الصور (مثال: البحث عن “غروب الشمس على الشاطئ” دون الحاجة لوسوم يدوية).
  3. قاعدة بيانات PostgreSQL + pgvector: تخزن كافة البيانات الوصفية وتضمينات المتجهات للبحث فائق السرعة.
  4. وسيط Redis: ينسق طوابير المهام الخلفية مثل توليد الصور المصغرة واستخراج بيانات EXIF وترميز الفيديو.

دليل التثبيت والتشغيل خطوة بخطوة

لنشر بيئة Immich الرسمية والمستقرة، أنشئ مجلدًا باسم immich وأنشئ بداخله ملفين: .env و docker-compose.yml.

أولاً، ملف المتغيرات .env:

# المسار الذي ستُخزن فيه الصور الأصلية والمصغرات
UPLOAD_LOCATION=/path/to/storage/immich-library
# كلمة مرور قاعدة البيانات
DB_PASSWORD=your_ultra_secure_postgres_password
# إصدار Immich المستقر
IMMICH_VERSION=release

ثانياً، ملف docker-compose.yml:

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - "2283:2283"
    depends_on:
      - redis
      - database
    restart: unless-stopped

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: unless-stopped

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479f0b7973771500ae18dbb8e1169b0087d260d5333a5bc038b481bc
    healthcheck:
      test: [ "CMD", "redis-cli", "ping" ]
      interval: 10s
      timeout: 5s
      retries: 3
    restart: unless-stopped

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab03d73727f675dc69d015c605b70f2008f862
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: postgres
      POSTGRES_DB: immich
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  model-cache:

لتشغيل الخادم بالكامل:

docker compose up -d

افتح متصفحك وتوجه إلى http://<SERVER_IP>:2283 لإعداد حساب المشرف، ثم حمّل تطبيق Immich من متجر Google Play أو Apple App Store، وأدخل عنوان الخادم لبدء المزامنة التلقائية.

ما الذي يستبدله؟

  • يستبدل Google Photos و iCloud: يلغي الاشتراكات الشهرية ويمنحك سعة تخزينية غير محدودة تعتمد فقط على حجم أقراصك الصلبة.
  • يستبدل تطبيقات الصور البدائية: يوفر واجهة هاتف فائقة السلاسة تشبه التطبيقات التجارية تمامًا بدلاً من الواجهات البطيئة للجيل السابق.
  • يستبدل أدوات النسخ الاحتياطي اليدوية: بمجرد التقاط صورة بهاتفك، يتم رفعها في الخلفية إلى خادمك المنزلي فور الاتصال بشبكة Wi-Fi.

الحدود والقيود التقنية

يتطلب محرك التعلم الآلي (CLIP + Facial Recognition) قدرًا معقولاً من الذاكرة العشوائية وقوة المعالجة أثناء الفهرسة الأولى لآلاف الصور (يُفضل 4 إلى 8 جيجابايت RAM على الأقل للخادم).

الفئات المستهدفة

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

الخلاصة

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

المصادر


المقال التاليUptime Kuma: الدليل الشامل لمراقبة الخوادم والخدمات وإنشاء صفحات الحالة العامةالمقال السابقLAN Orangutan: مسح وتوثيق أجهزة الشبكة محليًا بقوة Nmap وتكامل Tailscale