Tropic Host

Immich على خادم VPS: أنشئ سحابتك الخاصة للصور ومقاطع الفيديو

2 دقيقة للقراءة
Tropic
Immich على خادم VPS: أنشئ سحابتك الخاصة للصور ومقاطع الفيديو

Immich: إنشاء سحابتك الخاصة للصور ومقاطع الفيديو على خادم VPS

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

فيما يلي سنستعرض متطلبات Immich، وطريقة تثبيته على Ubuntu باستخدام Docker Compose، وإعداد HTTPS، وربط الهاتف، وإنشاء نسخة احتياطية خارجية.

Immich في ست خطوات

  1. أنشئ خادم Linux VPS بذاكرة ومساحة قرص كافيتين.
  2. وجّه نطاقًا فرعيًا مثل photos.example.com إلى عنوان IP الخاص بالخادم.
  3. ثبّت Docker ونزّل إعداد Immich الرسمي.
  4. حدّد مسارات مكتبة الوسائط وقاعدة البيانات، ثم شغّل الحاويات.
  5. أغلق المنفذ الداخلي وفعّل HTTPS.
  6. ثبّت تطبيق الهاتف واضبط نسخة احتياطية خارجية.

ما هو Immich؟

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

يتمثل الفرق الرئيسي عن خدمات الصور السحابية التقليدية في التحكم بالجانب الخادمي. تُخزّن الملفات على خادم VPS أو خادم منزلي، لكن المالك مسؤول عن المساحة الحرة والتحديثات والأمان والنسخ الاحتياطية.

المعيارخدمة صور سحابيةImmich
مكان تخزين الملفاتعلى بنية مزود الخدمةعلى خادمك
الصيانةيتولاها مزود الخدمةيتولاها المالك
التكاليفخطة تعتمد على سعة التخزينخادم VPS ومساحة قرص ونسخ احتياطية

Immich ليس نسخة احتياطية بحد ذاته. إذا كانت الصور موجودة على خادم VPS واحد فقط، فقد يؤدي تعطل القرص أو الحذف غير المقصود إلى فقدان الأرشيف.

أهم ميزات Immich

  • الرفع التلقائي. ترفع تطبيقات Android وiOS الصور ومقاطع الفيديو من الألبومات المحددة. يُستخدم Wi-Fi افتراضيًا، ويتم تخطي الملفات الموجودة مسبقًا اعتمادًا على قيمة checksum الخاصة بها.
  • البحث الذكي. يمكن للخدمة البحث حسب الأشخاص والموقع والتاريخ والكاميرا والنص داخل الصورة ووصف المحتوى. تُجمع الوجوه، وبعد ذلك يمكن إسناد أسماء إليها.
  • الألبومات والمشاركة. يدعم Immich عدة مستخدمين، وألبومات مشتركة، ومشاركة مع الشريك، وروابط عامة محمية بكلمة مرور وتاريخ انتهاء.
  • الخريطة والبيانات الوصفية. يقرأ Immich بيانات EXIF ويعرض مكان التقاط الصورة وينشئ الذكريات ويدعم المفضلة والأرشيف والمكتبات الخارجية.

يحمّل التعلم الآلي المعالج والذاكرة العشوائية بأكبر قدر أثناء الاستيراد الأولي. بعد إنشاء الصور المصغرة والفهارس، يكون استهلاك الموارد اليومي عادةً أقل.

متطلبات خادم Immich

المتطلبات الرسمية للإصدارات الحالية هي:

  • نظام Linux أو Unix-like ‏64-bit؛
  • نواتا CPU على الأقل، مع التوصية بأربع نوى؛
  • ذاكرة RAM بسعة 6 GB على الأقل، مع التوصية بـ 8 GB؛
  • Docker Engine مع إضافة docker compose؛
  • قرص SSD محلي لقاعدة بيانات PostgreSQL؛
  • مساحة للملفات الأصلية والصور المصغرة ومقاطع الفيديو المحوّلة.

يمكن تشغيل Immich على خادم بذاكرة 4 GB إذا عطّلت ميزات التعلم الآلي. وللتعرّف إلى الوجوه والبحث الذكي، من الأفضل اختيار 8 GB منذ البداية.

تضيف الصور المصغرة والملفات المحوّلة في المتوسط 10–20% إلى حجم مكتبة الوسائط. بالنسبة إلى أرشيف حجمه 200 GB، خصص ما لا يقل عن 240–260 GB. يجب تخزين مجلد قاعدة البيانات DB_DATA_LOCATION على SSD محلي، وليس على قرص شبكي.

تكوين عملي للبدء هو 4 vCPUs وذاكرة RAM بسعة 8 GB وUbuntu 24.04 LTS وSSD بسعة تزيد 20–30% على الأقل عن مكتبة المصدر. لا تحتاج إلى بطاقة رسومات مخصصة، رغم أنها قد تسرّع معالجة أرشيف كبير.

طريقة تثبيت Immich على خادم VPS

يستخدم هذا المثال Ubuntu 24.04 والنطاق الفرعي photos.example.com.

1. إعداد DNS وتجهيز Ubuntu

أنشئ سجل DNS من نوع A يشير إلى عنوان IPv4 الخاص بخادم VPS. ثم اتصل عبر SSH:

ssh root@SERVER_IP
apt update && apt upgrade -y

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

لا تغلق جلسة SSH الحالية حتى تتحقق من نجاح اتصال جديد.

2. تثبيت Docker وDocker Compose

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

استخدم الأمر docker compose تحديدًا؛ فالأمر القديم docker-compose لم يعد مدعومًا من المشروع.

3. تنزيل Immich وضبطه

mkdir -p /opt/immich /srv/immich-data
cd /opt/immich

curl -L -o docker-compose.yml \
  https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
  https://github.com/immich-app/immich/releases/latest/download/example.env

افتح الملف:

nano /opt/immich/.env

غيّر المعلمات الرئيسية:

UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORD

أدخل منطقتك الزمنية الخاصة. يجب أن تتضمن كلمة مرور PostgreSQL أحرفًا لاتينية وأرقامًا؛ وسيولّد الأمر openssl rand -hex 24 قيمة عشوائية. اترك الأسطر الأخرى كما هي في ملف example.env الحالي.

4. إغلاق المنفذ الداخلي وتشغيل الحاويات

في ملف docker-compose.yml، ابحث عن منفذ خدمة immich-server:

ports:
  - '2283:2283'

استبدله بما يلي:

ports:
  - '127.0.0.1:2283:2283'

أصبح المنفذ متاحًا الآن من داخل خادم VPS نفسه فقط. شغّل الخدمة:

cd /opt/immich
docker compose up -d
docker compose ps

للتشخيص استخدم docker compose logs --tail=200.

5. تفعيل HTTPS باستخدام Caddy

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
    reverse_proxy 127.0.0.1:2283
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

سيطلب Caddy شهادة تلقائيًا إذا كان DNS يشير إلى خادم VPS وكان المنفذان 80 و443 متاحين. يجب أن يعمل Immich في جذر نطاق أو نطاق فرعي؛ أما عنوان مثل example.com/immich فغير مدعوم.

6. إنشاء حساب المسؤول وربط الهاتف

افتح https://photos.example.com. يصبح أول مستخدم مسجل هو المسؤول، ويمكنه إنشاء حسابات إضافية.

ثبّت Immich من App Store أو Google Play. في شاشة تسجيل الدخول أدخل العنوان من دون /api:

https://photos.example.com

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

تحديث Immich

قبل التحديث اقرأ ملاحظات الإصدار، لا سيما عند الانتقال إلى إصدار رئيسي جديد:

cd /opt/immich
docker compose pull
docker compose up -d
docker image prune

حدّث تطبيقات الهاتف أولًا ثم الخادم. قد لا يكون إرجاع قاعدة البيانات إلى إصدار أقدم مدعومًا ما لم تُقدَّم تعليمات منفصلة لذلك.

إنشاء نسخة احتياطية من Immich

ينشئ Immich تلقائيًا تفريغات لقاعدة PostgreSQL، لكنها تحتوي على قاعدة البيانات والبيانات الوصفية فقط، وليس الصور ومقاطع الفيديو. من أجل الاستعادة الكاملة احفظ ما يلي:

  • مجلد /srv/immich-data بالكامل؛
  • الملفان /opt/immich/.env وdocker-compose.yml؛
  • إعداد Caddy.

لا تحمي نسخة موجودة على خادم VPS نفسه من تعطل القرص أو حذف الخادم. أرسل البيانات إلى خادم منفصل أو NAS أو تخزين كائنات، واتبع استراتيجية النسخ الاحتياطي 3-2-1. اختبر الاستعادة دوريًا بدلًا من الاكتفاء بالتحقق من وجود ملفات النسخ الاحتياطية.

أي خادم VPS تختار لـ Immich؟

للاستفادة الكاملة من التعرّف إلى الوجوه والبحث الذكي، من المنطقي اختيار خادم VPS مزود بما لا يقل عن 4 vCPUs وذاكرة RAM بسعة 8 GB. احسب حجم القرص وفقًا لمكتبة الوسائط، مع إضافة مساحة للصور المصغرة ومقاطع الفيديو ونمو الأرشيف.

يناسب هذا الاستخدام خادم Linux VPS من tropic.host بعنوان IP ثابت وتخزين SSD. يمكنك البدء بتكوين 8 GB من الذاكرة وزيادة الموارد مع نمو المكتبة. احتفظ بقاعدة PostgreSQL على قرص محلي سريع، واجعل النسخة الاحتياطية خارج خادم VPS هذا.

يوفر خادم VPS وصولًا مستمرًا على مدار الساعة من أي شبكة. أما الأرشيفات التي تبلغ عدة تيرابايت فقد يكون الخادم المنزلي أرخص، لكنك ستحتاج إلى توفير الكهرباء والوصول الخارجي والتكرار بنفسك.

قيود Immich

لا تضمن الاستضافة الذاتية الموثوقية تلقائيًا. فكلمة المرور الضعيفة أو كشف المنفذ 2283 أو الحاويات القديمة أو غياب النسخة الاحتياطية الخارجية يخلق خطر فقدان البيانات.

كما أن Immich ليس نسخة مطابقة تمامًا لـ Google Photos أو iCloud؛ إذ تختلف إمكانات التحرير والمزامنة في الخلفية، وتعتمد سرعة التحليل على العتاد. قبل نقل أرشيفك الوحيد، اختبر الخدمة باستخدام مكتبة صغيرة.

الخلاصة

يتيح لك Immich إنشاء معرض صورك الخاص مع الرفع من الهاتف والألبومات والتعرّف إلى الوجوه والبحث والمشاركة. بالنسبة إلى الإصدار الحالي، من الأفضل تجهيز خادم Linux VPS بأربع نوى وذاكرة 8 GB وSSD بسعة احتياطية لا تقل عن 20–30%.

بعد التثبيت اضبط HTTPS والتحديثات ونسخة احتياطية خارجية من مجلد الوسائط مع قاعدة البيانات. النسخة الاحتياطية، لا الاستضافة الذاتية وحدها، هي التي تحمي الصور من الفقدان.

FAQ

هل Immich مجاني؟

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

كم يحتاج Immich من ذاكرة RAM؟

الحد الأدنى الرسمي هو 6 GB من الذاكرة، بينما يوصى بـ 8 GB. ومع 4 GB ستحتاج إلى تعطيل التعلم الآلي.

هل يمكن تثبيت Immich من دون نطاق؟

نعم من الناحية التقنية، لكن من الأفضل استخدام نطاق وHTTPS للوصول الدائم من الهاتف. فهذا يحمي المصادقة ونقل الملفات.

هل يحل Immich محل النسخة الاحتياطية للصور؟

لا. انسخ مكتبة الوسائط وقاعدة البيانات بشكل منفصل إلى جهاز أو موقع آخر.

هل يمكنني نقل أرشيف صور موجود؟

نعم. يمكن رفع الملفات عبر واجهة الويب أو CLI، أو ربط مجلد كمكتبة خارجية. أنشئ نسخة من بيانات المصدر قبل إجراء استيراد واسع النطاق.