انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

تثبيت Immich: نسخ احتياطي للصور والفيديو مستضاف ذاتياً

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

وقت القراءة: 14 dk الاستضافة الذاتية
immichصورفيديونسخ احتياطيself-hostingdockerبديل google photos
الكاتب
REXE Teknoloji Network & Security Team
المحرر
REXE Teknoloji Technical Editorial
أول نشر
آخر تحديث

تثبيت Immich: نسخ احتياطي للصور والفيديو مستضاف ذاتياً

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

ما هو Immich؟

Immich يتيح لك استضافة مجموعة الصور والفيديو على خادمك الخاص:

  • نسخ احتياطي تلقائي: نسخ في الخلفية عبر تطبيقات iOS وAndroid
  • التعرف على الوجوه: كشف وتجميع الوجوه تلقائياً بالتعلم الآلي
  • عرض الخريطة: عرض الصور على الخريطة باستخدام بيانات GPS
  • ألبومات مشتركة: مشاركة الألبومات مع العائلة والأصدقاء
  • الخط الزمني: متصفح صور زمني
  • البحث: بحث ذكي بالكائنات والمشاهد والنص

متطلبات النظام

  • Docker و Docker Compose
  • حد أدنى 4 جيجابايت RAM (يُنصح بـ 8 جيجابايت لنماذج ML)
  • مساحة قرص كافية
  • PostgreSQL 14+ (يُثبَّت تلقائياً عبر Docker Compose)

التثبيت عبر Docker

hljs yaml
version: '3.8'

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

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:release
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine
    restart: always

  database:
    container_name: immich_postgres
    image: tensorchord/pgvecto-rs:pg14-v0.2.0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

volumes:
  pgdata:
  model-cache:

ملف .env

hljs bash
UPLOAD_LOCATION=/data/immich/upload
DB_PASSWORD=StrongPass123!
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
hljs bash
mkdir -p /data/immich/upload
docker compose up -d
docker logs immich_server -f

الوصول إلى واجهة Immich الويب: http://IP_الخادم:2283. ستحتاج لإنشاء حساب مسؤول عند أول تسجيل دخول.

Nginx Reverse Proxy

hljs nginx
server {
    listen 443 ssl http2;
    server_name photos.example.com;

    ssl_certificate /etc/letsencrypt/live/photos.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/photos.example.com/privkey.pem;

    client_max_body_size 50000M;

    location / {
        proxy_pass http://127.0.0.1:2283;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 600s;
    }
}

إعداد التطبيق المحمول

  1. حمّل "Immich" من App Store أو Google Play
  2. أدخل URL الخادم: https://photos.example.com
  3. سجّل الدخول باسم المستخدم وكلمة المرور
  4. اضبط إعدادات النسخ الاحتياطي التلقائي

المكتبة الخارجية

hljs yaml
services:
  immich-server:
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /mnt/photos:/mnt/photos:ro

النسخ الاحتياطي

hljs bash
# نسخ احتياطي لقاعدة البيانات
docker exec immich_postgres pg_dumpall -U postgres | \
  gzip > /backups/immich-db-$(date +%Y%m%d).sql.gz

# نسخ احتياطي لمجلد الرفع
rsync -avz /data/immich/upload/ /backups/immich-upload/

التحديث

hljs bash
docker exec immich_postgres pg_dumpall -U postgres > immich-backup.sql
docker compose pull
docker compose up -d

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

الخلاصة

Immich بديل قوي ومستضاف ذاتياً لـ Google Photos. مع 8 جيجابايت RAM على خوادم REXE يمكنك إدارة آلاف الصور بسلاسة.

الأسئلة الشائعة

كم مساحة قرص يحتاج Immich؟

مساحة القرص تعتمد كلياً على حجم مجموعة الصور/الفيديو. يخزن Immich الملفات الأصلية وينشئ صوراً مصغرة إضافية (~10-15% مساحة إضافية). لـ 10,000 صورة توقع حوالي 50-100 جيجابايت؛ أكثر بكثير مع مجموعات الفيديو. ذاكرة التخزين المؤقت لنماذج ML تحتاج ~2 جيجابايت إضافية.

التطبيق المحمول لا يستطيع الاتصال بالخادم.

تحقق من: 1) URL الخادم صحيح (بما في ذلك https://)، 2) المنفذ 2283 مفتوح في جدار الحماية، 3) عند استخدام Nginx reverse proxy تأكد من تفعيل دعم WebSocket، 4) شهادة SSL صالحة (الشهادات الموقّعة ذاتياً قد تسبب مشاكل على الهاتف).

التعرف على الوجوه لا يعمل أو بطيء جداً.

تحقق من أن حاوية ML تعمل (docker ps). المسح الأول قد يستغرق ساعات للمجموعات الكبيرة. يتطلب حد أدنى 4 جيجابايت RAM (يُنصح بـ 8 جيجابايت). تأكد من تفعيل التعرف على الوجوه في Administration → Machine Learning.

كيف أستورد مجموعة الصور الموجودة؟

طريقتان: 1) المكتبة الخارجية — اربط مجلد الصور كـ volume للقراءة فقط وامسحه من Administration → External Libraries. 2) أداة CLI — رفع جماعي بـ immich-cli: npx immich upload --recursive /path/to/photos. المكتبة الخارجية تقرأ الملفات في مكانها دون نسخ.

Immich توقف عن العمل بعد التحديث.

إذا كان لديك نسخة احتياطية لقاعدة البيانات يمكنك استعادتها. أوقف جميع الحاويات: docker compose down. حمّل الصور مجدداً: docker compose pull. شغّل: docker compose up -d. تحقق من السجلات: docker logs immich_server.

ما الفروق بين Immich و Google Photos؟

مزايا Immich: بياناتك تبقى معك، لا حدود للتخزين، مجاني ومفتوح المصدر. العيوب: تحتاج إدارة خادمك الخاص، ليس متقدماً مثل ميزات AI من Google (لكنه يتحسن بسرعة)، لم يصل بعد إلى الإصدار المستقر 1.0. الميزات الأساسية (النسخ الاحتياطي، التعرف على الوجوه، البحث، المشاركة) متوفرة.

مقالات ذات صلة

حركة الشبكةالداخل Gbpsالخارج Gbps