SSD Nodes Learn 🎉 VPS $5.50/ماہ سے
تعلیمی Matt Connorتحریر: Matt Connor · اپ ڈیٹ شدہ 2026-08-07

PhotoPrism بمقابلہ Immich: کون سا photo server بہتر ہے؟

PhotoPrism اور Immich کا حقیقی RAM کم از کم، phone apps، maps اور VPS پر درکار backup commands جانیں، تاکہ اپنی library کے لیے درست انتخاب کریں۔

PhotoPrism بمقابلہ Immich: مختصر جواب

PhotoPrism بمقابلہ Immich کا انتخاب ایک ہی product کے دو versions کے درمیان انتخاب نہیں، بلکہ دو مختلف کاموں کے درمیان انتخاب ہے۔ Immich، Google Photos کی جگہ لیتا ہے: فون app آپ کے camera roll کا خودکار backup بناتی ہے، اور حاصل ہونے والی timeline ہر اس شخص کو مانوس لگتی ہے جو فون gallery سے منتقل ہو رہا ہو۔ PhotoPrism اس photo library کو منظم کرتا ہے جو پہلے سے آپ کے پاس موجود ہے: یہ disk پر موجود files کے folders کو index کرتا ہے، ان کا metadata پڑھتا ہے، انہیں map پر دکھاتا ہے، اور files کو بالکل اسی جگہ رہنے دیتا ہے جہاں وہ پہلے موجود تھیں۔

اگر مسئلہ یہ ہے کہ "میرے فون میں جگہ ختم ہو گئی ہے اور میں Google Photos سے منتقل ہونا چاہتا ہوں"، تو Immich منتخب کریں۔ اگر مسئلہ یہ ہے کہ "میرے drive پر photos کا 400 GB مجموعہ ہے اور مجھے ان میں کچھ نہیں ملتا"، تو PhotoPrism منتخب کریں۔ دونوں open source ہیں، دونوں عام VPS پر Docker containers کے طور پر چلتے ہیں، اور دونوں آپ کی library کو کسی third party کو بھیجے بغیر index اور search کرتے ہیں۔

فلسفے میں فرق، اور یہ کیوں ہر چیز کا فیصلہ کرتا ہے

Immich فائلوں کا مالک ہوتا ہے۔ آپ اسے upload location بتاتے ہیں، phone app یا web uploader اصل فائلیں وہاں بھیجتا ہے، اور Immich انہیں اپنے path کے تحت اپنی naming کے ساتھ محفوظ کرتا ہے۔ database میں albums، faces اور search سے متعلق اصل معلومات محفوظ ہوتی ہیں۔ یہی ڈیزائن phone کے استعمال کا تجربہ بہتر بناتا ہے، کیونکہ server کو ہر asset کی مکمل موجودہ حالت کا ہمیشہ علم ہوتا ہے۔

PhotoPrism فائلوں کو پڑھتا ہے۔ آپ اسے ایک ایسی originals folder mount کرتے ہیں جس کا کنٹرول پہلے ہی آپ کے پاس ہے، اور PhotoPrism اس کے اوپر index بناتا ہے۔ directory tree آپ ہی کی رہتی ہے۔ اگر آپ کل PhotoPrism ہٹا دیں، تو photos انہی folders میں انہی names کے ساتھ موجود رہیں گی، اور PhotoPrism ان کے ساتھ sidecar YAML files لکھ چکا ہوگا جن میں اس کی حاصل کردہ معلومات درج ہوں گی۔

یہ ایک فرق باقی زیادہ تر امور کی وضاحت کرتا ہے۔ Immich میں mobile support مضبوط ہے کیونکہ ingestion کا کنٹرول اسی کے پاس ہوتا ہے۔ PhotoPrism میں library curation مضبوط ہے کیونکہ وہ آپ کی موجودہ structure سے متصادم نہیں ہوتا۔ ایسے خاندان کے لیے Immich بہتر انتخاب ہے جس کی photos phones میں محفوظ ہوں۔ ایسی archive کے لیے PhotoPrism بہتر انتخاب ہے جو disk پر موجود ہو۔

ہارڈویئر کی ضرورت: Immich زیادہ وسائل مانگتا ہے

دستاویزی minimum memory requirements میں کافی فرق ہے، اور چھوٹے VPS پر عموماً یہی فیصلہ کن عامل ہوتا ہے۔

ChartDocumented memory requirement, as of July 2026
The data behind this chart
[
  {
    "label": "Immich",
    "min_ram_gb": 6,
    "recommended_ram_gb": 8
  },
  {
    "label": "PhotoPrism",
    "min_ram_gb": 3,
    "recommended_ram_gb": 4
  }
]

Immich دستاویزات میں 6 GB RAM کو minimum اور 8 GB RAM کو recommended قرار دیا گیا ہے۔ ساتھ یہ بھی درج ہے کہ 4 GB والی مشین پر اسے صرف machine learning بند کرکے چلایا جا سکتا ہے۔ PhotoPrism کے مطابق 3 GB physical memory اور 2 CPU cores درکار ہیں، اور RAM کی مقدار core count کے مطابق ہونی چاہیے۔

یہ فرق حقیقی ہے، اور اس کی وجہ machine learning container ہے۔ Immich اپنے models کو الگ immich-machine-learning service میں چلاتا ہے۔ یہ service CLIP (contrastive language image pretraining) اور face detection models کو memory میں load کرتی ہے۔ 2 GB والی مشین پر kernel اس container کو ختم کر دیتا ہے، اور Docker میں یہ code 137 کے ساتھ exit ہوتا دکھائی دیتا ہے۔ یہ out of memory kill کی علامت ہے۔ PhotoPrism کے TensorFlow models چھوٹے ہیں، اور یہ ختم ہونے کے بجائے اپنی کارکردگی کم کرتا ہے۔ 1 GB یا اس سے کم memory والی مشینوں پر یہ crash ہونے کے بجائے RAW conversion اور TensorFlow بند کر دیتا ہے۔

دونوں projects swap استعمال کرنے کا تقاضا کرتے ہیں۔ PhotoPrism کی دستاویزات میں server پر کم از کم 4 GB swap کی واضح سفارش کی گئی ہے۔ ان میں سے کسی کو install کرنے سے پہلے swap شامل کریں۔

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h

free -h کو اب ایک Swap: line دکھانی چاہیے جس میں 4.0Gi ہو۔ اگر یہ 0B دکھائے تو swapon ناکام ہوئی ہے۔ عموماً اس کی وجہ یہ ہوتی ہے کہ filesystem fallocate کو support نہیں کرتا، اور sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 fallback کے طور پر استعمال ہوتا ہے۔ یہاں container memory ceilings بھی اہم ہیں۔ Docker Compose میں memory limits مقرر کرنا اس بات کا طریقہ ہے کہ کوئی زیادہ memory استعمال کرنے والی service پوری مشین کو بند نہ کر دے۔

ایک اور requirement اکثر نظر انداز ہو جاتی ہے۔ Immich کا Postgres database حقیقی ownership اور permissions والے عام Unix filesystem پر، local storage میں ہونا چاہیے۔ اسے کبھی بھی network share پر نہ رکھیں۔ PhotoPrism بھی اپنی database files کے لیے یہی شرط بیان کرتا ہے۔ کسی بھی app کو mounted object store پر database کے ساتھ محفوظ طور پر نہیں چلایا جا سکتا۔

ہر ایک کو کیسے نصب کریں

دونوں کی تنصیبات میں vendor کی فراہم کردہ compose file اور ایک command شامل ہے۔ پہلے Docker Engine اور Compose plugin ترتیب دیں، جیسا کہ VPS پر Docker Compose کی ہماری رہنما میں بتایا گیا ہے۔

Immich ہر release کے ساتھ اپنی compose file اور مثال کی environment file فراہم کرتا ہے۔

sudo mkdir -p /opt/immich && cd /opt/immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

کچھ شروع کرنے سے پہلے .env میں ترمیم کریں۔ UPLOAD_LOCATION وہ جگہ ہے جہاں آپ کی اصل تصاویر محفوظ ہوں گی، اور DB_PASSWORD کو default سے بدلنا ضروری ہے۔ اس کے لیے صرف A-Za-z0-9 کے characters استعمال کریں، کیونکہ special characters connection string کو خراب کر دیتے ہیں۔ اس کے بعد اسے شروع کریں۔

docker compose up -d
docker compose ps

web interface port 2283 پر دستیاب ہوتا ہے۔ اس صفحے کے ذریعے رجسٹر ہونے والا پہلا account administrator بن جاتا ہے۔ اس لیے فوراً اسے کھول کر رجسٹریشن مکمل کریں، اور کھلی instance کو internet پر غیر محفوظ نہ چھوڑیں۔

PhotoPrism ایک ایسی compose file فراہم کرتا ہے جس میں MariaDB پہلے ہی شامل ہے۔

sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yaml

پہلی بار شروع کرنے سے پہلے compose.yaml کھولیں اور PHOTOPRISM_ADMIN_PASSWORD تبدیل کریں۔ دستاویزات میں یہ بات واضح طور پر درج ہے: app اسی initial password کے ساتھ شروع ہوتی ہے جو اس file میں موجود ہو، کم از کم لمبائی 8 characters ہے، اور public server پر default value کبھی استعمال نہیں کرنی چاہیے۔ اسی وقت originals volume کو اس folder پر set کریں جس میں آپ کی تصاویر موجود ہیں۔

docker compose up -d
docker compose logs -f photoprism

PhotoPrism port 2342 پر admin user کے ساتھ دستیاب ہوتا ہے۔ دونوں apps کو براہ راست expose نہیں کرنا چاہیے۔ ان کے سامنے TLS (transport layer security) کے ساتھ reverse proxy رکھیں۔ setup کی یہی ساخت Docker، TLS اور backups کے ساتھ self-hosted Nextcloud کے لیے بھی استعمال ہوتی ہے۔

کسی کی فون ایپ بہتر ہے؟

یہ وہ شعبہ ہے جہاں دونوں projects میں سب سے زیادہ فرق ہے، اور یہی وجہ ہے کہ زیادہ تر لوگ Immich منتخب کرتے ہیں۔

Immich، Android اور iOS کے لیے official apps فراہم کرتا ہے۔ یہ apps camera roll کا background backup کرتی ہیں۔ اس کا مطلب ہے کہ نئی photos کسی کو کچھ کھولے بغیر فون سے منتقل ہو جاتی ہیں۔ ایپ کو HTTPS endpoint درکار ہوتا ہے، اس لیے اگر آپ اسے گھر سے باہر استعمال کرنا چاہتے ہیں تو reverse proxy اختیاری نہیں رہتا۔

PhotoPrism کی کوئی official native app نہیں ہے۔ یہ progressive web app فراہم کرتا ہے، جسے آپ browser سے home screen پر شامل کر سکتے ہیں۔ فون سے sync کرنے کے لیے اس کی دستاویزات WebDAV (web distributed authoring and versioning) کو طریقہ بتاتی ہیں۔ Project اس مقصد کے لیے PhotoSync نامی third party app تجویز کرتا ہے، جسے WebDAV کے ذریعے /import/ یا /originals/ directory پر point کیا جاتا ہے۔ یہ طریقہ کام کرتا ہے، لیکن اس میں ایک paid third party app وہ کام کرتی ہے جو Immich اپنے client کے اندر انجام دیتا ہے۔

اگر کئی family members کے لیے فون کا automatic backup لازمی requirement ہے تو فیصلہ واضح ہے۔ Immich۔

مشین لرننگ آپ کو حقیقت میں کیا فراہم کرتی ہے

Immich، CLIP استعمال کرتے ہوئے آپ کی لائبریری میں semantic search کرتا ہے۔ اس لیے "red bicycle in snow" جیسی query سے وہ تصاویر بھی مل جاتی ہیں جنہیں کسی نے کبھی tag نہیں کیا۔ یہ face detection، چہروں کی clustering اور duplicate detection بھی کرتا ہے۔ CPU پر بڑی import کو index کرنے کا عمل پس منظر میں کئی گھنٹے چل سکتا ہے۔ یہ معمول کی بات ہے اور اس کے لیے GPU (graphics processing unit) ضروری نہیں ہے۔

PhotoPrism، TensorFlow کے ذریعے تصاویر کو labels میں classify کرتا ہے، چہروں کا پتا لگاتا ہے اور انہیں لوگوں کے گروپس میں منظم کرتا ہے۔ یہ location metadata بھی پڑھتا ہے تاکہ places map بنایا جا سکے۔ یہی map وہ feature ہے جس کی وجہ سے لوگ PhotoPrism استعمال کرتے رہتے ہیں۔ تصاویر کہاں لی گئی تھیں، اس بنیاد پر index کی گئی لائبریری بیس سال کی تصاویر دیکھنے کا واقعی مختلف طریقہ فراہم کرتی ہے۔ Face recognition مفت Community edition میں شامل ہے۔ ادا شدہ Essentials اور Plus memberships میں اضافی سہولیات شامل ہیں، مثلاً مزید تفصیلی map layers، زیادہ user roles اور user management interface۔ July 2026 تک ان کی قیمت ہر ماہ چند euros سے شروع ہوتی ہے۔

Immich مکمل طور پر مفت ہے اور اس میں کوئی paid tier نہیں ہے۔ PhotoPrism کا بنیادی حصہ مفت ہے، جبکہ اضافی paid features اختیاری ہیں۔

بیک اپ فیصلہ کرتے ہیں کہ ڈیٹا محفوظ رہے گا یا نہیں

بیک اپ کے بغیر photo server میں صرف ایک disk failure پورے خاندان کی تصاویر ضائع کر سکتا ہے۔ دونوں ایپس کے لیے دو بیک اپ ضروری ہیں: database اور files۔

Immich کے لیے Postgres container سے database dump بنائیں اور upload location کی کاپی کریں۔

docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gz

اس کے بعد UPLOAD_LOCATION کا بیک اپ لیں۔ ناقابلِ تلافی data رکھنے والے folders upload، library اور profile ہیں۔ thumbs اور encoded-video folders دوبارہ بنائے جا سکتے ہیں، لیکن اس میں کئی گھنٹے کا CPU وقت لگ سکتا ہے۔ صرف database dump بحالی کے لیے کافی نہیں، کیونکہ اس میں صرف metadata ہوتا ہے۔

PhotoPrism کے لیے index کا اپنا command موجود ہے۔

docker compose exec photoprism photoprism backup -i -f

یہ storage/backup/ کے تحت SQL dump لکھتا ہے۔ اس کے بعد originals folder اور storage folder کی کاپی کریں۔ PhotoPrism ہر photo کی وضاحت کرنے والی sidecar YAML files بھی لکھتا ہے۔ اس لیے index ضائع ہونے کی صورت میں صرف files سے index دوبارہ بنایا جا سکتا ہے۔ کئی دہائیوں تک محفوظ رکھنے والے archive کے لیے یہ ایک اہم فائدہ ہے۔

آپ جو بھی ایپ منتخب کریں، شیڈول کے مطابق ان بیک اپس کو remote storage پر encrypted، deduplicated restic backups کے ذریعے server سے باہر بھیجیں۔ library والی اسی disk پر موجود بیک اپ، بیک اپ نہیں ہوتا۔

کون سا چلانا چاہیے

اگر آپ کی تصاویر phones پر ہیں، ایک سے زیادہ افراد کو camera roll کا backup درکار ہے، اور آپ server کو 6 GB یا اس سے زیادہ RAM دے سکتے ہیں، تو Immich چلائیں۔ یہ ایسی self-hosted سروس ہے جو Google Photos سے سب سے زیادہ مشابہت رکھتی ہے، اور اس کا اصل مقصد mobile experience ہے۔ ہماری Immich کی مرحلہ وار installation guide میں memory kills اور upgrade traps کی تفصیل دی گئی ہے۔

اگر آپ کے پاس disk پر پہلے سے photo archive موجود ہے، maps اور metadata اہم ہیں، اپنی folder structure برقرار رکھنا چاہتے ہیں، یا آپ کے VPS میں 4 GB RAM ہے اور آپ swapping کے بجائے working library چاہتے ہیں، تو PhotoPrism چلائیں۔ یہ curation کے لیے بہتر tool ہے اور کم hardware پر نسبتاً کم بوجھ ڈالتا ہے۔

دونوں کو چلانا بھی مناسب ہے۔ Immich روزانہ phones سے تصاویر وصول کرنے کا کام سنبھالتا ہے۔ سال میں ایک بار آپ محفوظ رکھنے والی تصاویر کو اپنے archive میں ترتیب دے سکتے ہیں اور PhotoPrism کو اس archive کا index بنانے دے سکتے ہیں۔ دونوں میں تضاد نہیں ہوتا، کیونکہ PhotoPrism folders پڑھتا ہے جبکہ Immich اپنی الگ storage کا مالک ہوتا ہے۔

FAQ

کیا PhotoPrism اور Immich ایک ہی photo folder استعمال کر سکتے ہیں؟

دونوں سمتوں میں محفوظ طریقے سے نہیں۔ PhotoPrism، originals folder سے تصاویر پڑھتا ہے اور آپ کی تصاویر کے ساتھ sidecar YAML files لکھتا ہے، جبکہ Immich توقع کرتا ہے کہ اس کے upload location کے contents اسی کی ملکیت ہوں گے۔ آپ PhotoPrism کو Immich کے library folder کی read-only copy پر point کر کے اسے browse کرنے کے لیے استعمال کر سکتے ہیں، لیکن دونوں apps کو ایک ہی files manage کرنے نہ دیں، کیونکہ Immich indexing کے دوران اپنے storage template کے مطابق assets کو PhotoPrism کے زیر استعمال مقام سے منتقل یا rename کر سکتا ہے۔

کیا Immich اتنا stable ہے کہ میری تصاویر کی واحد copy اسی میں رکھی جا سکے؟

کوئی بھی self-hosted app کسی بھی چیز کی واحد copy رکھنے کے لیے استعمال نہیں ہونی چاہیے۔ Immich اکثر breaking changes جاری کرتا ہے، اور ایک بے احتیاط docker compose pull database کو start ہونے سے روک سکتی ہے، اس لیے اپنا version pin کریں اور upgrade سے پہلے release notes پڑھیں۔ Original files کا server سے باہر backup رکھیں؛ اس طرح risk کم رہتا ہے۔

Immich کا machine learning container بار بار restart کیوں ہوتا ہے؟

اسے بہت زیادہ memory استعمال کرنے پر kill کیا جا رہا ہے۔ docker compose ps چلائیں اور دیکھیں کہ machine learning service code 137 کے ساتھ exit ہو رہی ہے یا نہیں؛ یہ kernel کا out of memory killer ہے۔ Swap شامل کریں، یا container کے لیے memory limit مقرر کریں تاکہ اسے kill کرنے کے بجائے throttle کیا جائے، یا 4 GB machine پر machine learning مکمل طور پر disable کر دیں۔ اس کے بغیر search کام کرنا بند کر دیتی ہے، لیکن Immich کا باقی حصہ ٹھیک چلتا رہتا ہے۔

کیا PhotoPrism کو MariaDB درکار ہے، یا SQLite کافی ہوگا؟

SQLite کام کرتا ہے اور personal library کے لیے مناسب ہے، لیکن اسے استعمال کرتے وقت PhotoPrism خود کو چار workers تک محدود کر لیتا ہے۔ Docs بہتر high concurrency handling کی وجہ سے MariaDB پر منتقل ہونے کی تجویز دیتی ہیں۔ Project کے ساتھ ship ہونے والی compose file میں MariaDB پہلے ہی شامل ہے، اس لیے تجویز کردہ طریقہ ہی default طریقہ بھی ہے۔

Library کے size سے زیادہ کتنی disk space رکھنی چاہیے؟

اپنے originals کے size کے علاوہ 10 سے 20 فیصد اضافی space رکھیں، چاہے کوئی بھی app استعمال کریں۔ اس سے generated thumbnails اور transcoded video previews کے لیے جگہ ملتی ہے۔ 200 GB کی collection کے لیے تقریباً 300 GB volume درکار ہوگا، تاکہ database، local backup copy اور آئندہ اضافے کے لیے بھی جگہ باقی رہے۔