SSD Nodes Learn Hosting plans →
मार्गदर्शक Matt Connorद्वारे Matt Connor · अपडेटेड 2026-10-30

PhotoPrism विरुद्ध Immich: कोणता photo server निवडावा?

PhotoPrism आणि Immich ची तुलना: खरा RAM किमान स्तर, phone apps, maps आणि VPS वर लागणाऱ्या अचूक backup commands जाणून योग्य photo server निवडा.

PhotoPrism विरुद्ध Immich: थोडक्यात उत्तर

PhotoPrism विरुद्ध Immich ही निवड एकाच उत्पादनाच्या दोन आवृत्त्यांमधील नसून दोन वेगवेगळ्या गरजांमधील आहे. Immich हे Google Photos चा पर्याय आहे: फोन अॅप तुमच्या camera roll चा आपोआप backup घेते आणि त्यातून मिळणारी timeline फोन gallery वापरून आलेल्या कोणालाही परिचित वाटते. PhotoPrism तुमच्याकडे आधीपासून असलेली photo library व्यवस्थित करते: ते disk वरील फाइल्सचे folders index करते, त्यांचा metadata वाचते, त्या नकाशावर दाखवते आणि फाइल्स ज्या ठिकाणी होत्या त्याच ठिकाणी ठेवते.

समस्या "माझ्या फोनमध्ये जागा संपली आहे आणि मला Google Photos वापरणे थांबवायचे आहे" अशी असल्यास Immich निवडा. समस्या "माझ्या drive वर photos चे 400 GB आहेत आणि त्यांपैकी काहीही शोधता येत नाही" अशी असल्यास PhotoPrism निवडा. दोन्ही open source आहेत, दोन्ही सामान्य VPS वर Docker containers म्हणून चालतात आणि दोन्ही तुमची library कोणत्याही third party कडे पाठविल्याशिवाय index आणि search करतात.

तत्त्वज्ञानातील फरक, आणि तो सर्वकाही का ठरवतो

Immich फाइल्सचे व्यवस्थापन करते. तुम्ही त्याला upload location देता. फोन अॅप किंवा web uploader मूळ फाइल्स तेथे पाठवतो. त्यानंतर Immich त्या फाइल्स स्वतःच्या path अंतर्गत स्वतःच्या naming पद्धतीने साठवते. Albums, faces आणि search यांसंबंधीची अधिकृत माहिती database मध्ये असते. फोनवरील अनुभव चांगला होण्यामागे ही रचना आहे, कारण प्रत्येक asset ची संपूर्ण स्थिती server ला नेहमी माहीत असते.

PhotoPrism फाइल्स वाचते. तुम्ही आधीपासून नियंत्रित करत असलेले originals folder mount करता आणि PhotoPrism त्यावर index तयार करते. तुमची directory tree तुमच्याच नियंत्रणात राहते. उद्या PhotoPrism काढून टाकले, तरी photos त्याच folders मध्ये त्याच names सह राहतात. PhotoPrism ने त्याला मिळालेल्या माहितीनुसार लिहिलेल्या sidecar YAML files स्वतःच्या storage folder मध्ये ठेवते. त्या files default म्हणून तेथेच साठवल्या जातात.

या एका फरकामुळे उर्वरित बहुतेक फरक स्पष्ट होतात. Ingestion वर नियंत्रण असल्यामुळे Immich ला mobile support मजबूत देता येतो. तुमच्या विद्यमान structure मध्ये हस्तक्षेप न केल्यामुळे PhotoPrism कडे library curation साठी मजबूत सुविधा असतात. ज्यांच्या photos phones वर साठवल्या जातात अशा कुटुंबांसाठी Immich अधिक योग्य पर्याय आहे. ज्यांचा archive disk वर साठवलेला आहे त्यांच्यासाठी PhotoPrism अधिक योग्य पर्याय आहे.

Hardware appetite: Immich अधिक संसाधने मागतो

दस्तऐवजीकरणात दिलेल्या memory किमान मर्यादा मोठ्या प्रमाणात वेगळ्या आहेत. लहान VPS वर हा बहुतेक वेळा निर्णायक घटक ठरतो.

तक्ताDocumented minimum memory, as of October 2026
या तक्त्यामागील डेटा
[
  {
    "label": "Immich",
    "min_ram_gb": 6
  },
  {
    "label": "PhotoPrism",
    "min_ram_gb": 3
  }
]

Immich मध्ये किमान 6 GB RAM आणि शिफारस केलेली 8 GB RAM आवश्यक असल्याचे नमूद केले आहे. तसेच, machine learning बंद केले असल्यासच 4 GB मशीनवर ते चालू शकते, अशी सूचना आहे. PhotoPrism साठी 3 GB physical memory आणि दोन 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 बंद करते. त्याचा exit code 137 दिसतो. हा signal 9 ने बंद केलेल्या process ची स्थिती आहे आणि Docker मध्ये out of memory kill अशाच प्रकारे दिसतो. PhotoPrism मधील built-in models ONNX वर चालतात. सर्व प्रकारच्या hardware वर ते सामान्यतः चांगली कामगिरी करतात, असे त्याच्या दस्तऐवजीकरणात म्हटले आहे. कमी memory असताना त्यात documented fallback देखील आहे: 1 GB किंवा त्यापेक्षा कमी memory असलेल्या मशीनवर RAW conversion आणि face recognition बंद केले जातात. मात्र, याचा अर्थ स्थिरतेची हमी असा नाही. त्याच्या 3 GB किमान मर्यादेपेक्षा कमी memory असल्यास instability आणि performance problems येऊ शकतात, असा प्रकल्पाचा इशारा आहे. त्यामुळे ही मर्यादा किमान मर्यादा म्हणूनच समजा.

PhotoPrism च्या दस्तऐवजीकरणात server वर किमान 4 GB swap असण्याची स्पष्ट शिफारस आहे. Immich च्या requirements page वर swap चा उल्लेख नाही. मात्र, लहान मशीनवर swap मुळे त्याच्या machine learning container ला अतिरिक्त headroom मिळतो. दोन्हीपैकी कोणतेही अॅप 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 दाखवली पाहिजे. त्या 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 मुळे संपूर्ण मशीन बंद पडू नये यासाठीचा उपाय आहे. मात्र, PhotoPrism स्वतः याला अपवाद आहे. मोठ्या files चे indexing करताना काही काळ अतिरिक्त memory आवश्यक असते. त्यामुळे त्याच्या container वर hard memory limit लागू करू नका, असा त्याच्या दस्तऐवजीकरणाचा सल्ला आहे. अशा limit मुळे अनपेक्षित restarts होऊ शकतात.

आणखी एक requirement अनेकांच्या लक्षात येत नाही. Immich चा Postgres database वास्तविक ownership आणि permissions असलेल्या सामान्य Unix filesystem वर, local storage मध्ये असला पाहिजे. तो network share वर ठेवू नका. PhotoPrism देखील database files shared network folder वर ठेवू नका, असा इशारा देते. त्यांच्यासाठी local SSD storage हे सर्वोत्तम ठिकाण असल्याचे ती नमूद करते. 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 value असते. Immich ती random password ने बदलण्याची शिफारस करते, मात्र ते अनिवार्य नाही. Postgres सार्वजनिकरीत्या उघडा केलेला नसल्यामुळे हा password केवळ स्थानिक authentication साठी वापरला जातो. तरीही random password सेट करण्यास काहीही अतिरिक्त खर्च येत नाही. फक्त A-Za-z0-9 मधील characters वापरा, कारण Docker ही value parse करताना इतर characters मुळे समस्या निर्माण होऊ शकतात, असे Immich च्या docs मध्ये नमूद आहे. त्यानंतर ते सुरू करा.

docker compose up -d
docker compose ps

Web interface port 2283 वर उपलब्ध होते. त्या पृष्ठाद्वारे नोंदणी केलेले पहिले account administrator बनते. त्यामुळे instance इंटरनेटवर उघडे ठेवण्याऐवजी त्यावर त्वरित जा आणि नोंदणी करा.

PhotoPrism मध्ये MariaDB समाविष्ट असलेली एक compose file दिली जाते.

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

पहिल्यांदा सुरू करण्यापूर्वी compose.yaml उघडा आणि PHOTOPRISM_ADMIN_PASSWORD बदला. Docs मध्ये याबाबत स्पष्ट सूचना आहे: त्या file मधील initial password वापरूनच app सुरू होते, त्याची किमान लांबी 8 characters आहे आणि public server वर default value कधीही वापरू नये. त्याच वेळी originals volume तुमचे photos असलेल्या folder वर सेट करा.

docker compose up -d
docker compose logs -f photoprism

PhotoPrism admin user सह port 2342 वर उपलब्ध होते. दोन्ही apps थेट सार्वजनिकरीत्या उघडू नयेत. पुढे TLS (transport layer security) असलेला reverse proxy ठेवा. Docker, TLS आणि backups सह self-hosted Nextcloud साठी वापरलेल्या रचनेप्रमाणेच ही रचना ठेवा. दुसरा पर्याय म्हणजे server private ठेवून VPN द्वारे त्यावर प्रवेश करणे. त्या VPS वर पुढे photos व्यतिरिक्त इतर सेवा चालू झाल्या, तरी प्रत्येक नवीन सेवेसाठी हीच मर्यादित उघडणारी रचना वापरा. कारण self-hosted RustDesk relay साठी केवळ त्याचे स्वतःचे दोन ports reachable असणे आवश्यक आहे; इतर काहीही उघडे ठेवण्याची गरज नाही.

कोणाचे फोन अॅप अधिक चांगले आहे

या बाबतीत दोन्ही प्रकल्पांमध्ये सर्वाधिक फरक आहे. बहुतेक लोक शेवटी Immich का निवडतात, याचे हेच कारण आहे.

Immich Android आणि iOS साठी अधिकृत अॅप्स उपलब्ध करून देते. ही अॅप्स camera roll चा background backup करतात. त्यामुळे कोणीही काही उघडले नाही तरी नवीन फोटो फोनमधून आपोआप बाहेर पाठवले जातात. घराबाहेरून वापरण्यासाठी Immich तीन मार्ग सांगते: WireGuard किंवा OpenVPN सारखा VPN, Tailscale, किंवा HTTPS देणारा reverse proxy. प्रत्येक फोनवर VPN अॅप न वापरता फोन अॅप्सना जोडण्याची सुविधा reverse proxy मुळे मिळते. अतिरिक्त configuration शिवाय port 2283 थेट इंटरनेटवर forward करू नये, असा इशारा Immich देते.

PhotoPrism चे अधिकृत native अॅप नाही. ते progressive web app उपलब्ध करून देते. हे अॅप browser मधून home screen वर जोडता येते. फोनवरून sync करण्यासाठी WebDAV (web distributed authoring and versioning) वापरण्याचे निर्देश PhotoPrism देते. यासाठी प्रकल्प PhotoSync नावाच्या third party अॅपची शिफारस करतो. हे अॅप WebDAV द्वारे /import/ किंवा /originals/ directory कडे निर्देशित केले जाते. ही पद्धत कार्य करते. मात्र Immich हे काम स्वतःच्या client मध्ये करते, तर येथे त्यासाठी paid third party अॅप वापरावे लागते.

कुटुंबातील अनेक सदस्यांसाठी automatic phone backup आवश्यक असल्यास निर्णय स्पष्ट आहे. Immich.

Machine learning प्रत्यक्षात तुम्हाला काय देते

Immich तुमच्या लायब्ररीवर CLIP वापरून semantic search करते. त्यामुळे "red bicycle in snow" सारखी query वापरल्यास, कोणीही tag न केलेले फोटोही सापडतात. ते face detection आणि clustering तसेच duplicate detection देखील करते. मोठा import CPU वर index करण्यासाठी background मध्ये काही तास लागू शकतात. हे सामान्य आहे आणि त्यासाठी GPU (graphics processing unit) आवश्यक नाही.

PhotoPrism built-in ONNX model वापरून images चे labels ठरवते, ONNX face models वापरून चेहरे detect करते आणि त्यांना people म्हणून group करते. तसेच location metadata वाचून places map तयार करते. त्यांच्या config folder मधील vision.yml file वापरून labels आणि captions साठी Ollama किंवा OpenAI जोडता येतात. लोक PhotoPrism वापरत राहण्याचे मुख्य कारण म्हणजे हा map आहे. कुठे घडले यानुसार index केलेली लायब्ररी वीस वर्षांचे फोटो पाहण्याची खरोखर वेगळी पद्धत देते. हीच कल्पना इतर media collections वरही लागू होते. Jellyfin साठी Halcyon चे 90s video store front end ही त्याची film आवृत्ती आहे. त्यात list ऐवजी shelf नुसार browsing करता येते. Face recognition मोफत Community edition मध्ये समाविष्ट आहे. Paid Essentials आणि Plus memberships मध्ये अधिक समृद्ध map layers, अधिक user roles आणि user management interface यांसारख्या सुविधा मिळतात. October 2026 पर्यंतच्या माहितीनुसार, त्यांची सुरुवात दरमहा काही euros पासून होते आणि billing annually केली जाते.

Immich मध्ये paywalled features नाहीत आणि पुढेही नसतील, असे project सांगते. ते optional lifetime product keys विकते: July 2024 मध्ये Immich ने जाहीर केलेल्या किमतीनुसार, एका user साठी $25 किंवा संपूर्ण server साठी $100. मात्र key खरेदी केल्याने काहीही unlock होत नाही. तुम्ही कधीही पैसे न दिले तरी Immich कोणत्याही मर्यादेशिवाय चालते. PhotoPrism चे core मोफत आहे. त्यात optional paid extras उपलब्ध आहेत.

बॅकअपवर तुमचा डेटा टिकून राहील की नाही हे ठरते

बॅकअप नसलेला फोटो सर्व्हर एका 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 चा बॅकअप घ्या. अपरिवर्तनीय डेटा असलेले folders म्हणजे upload, library आणि profile. thumbs आणि encoded-video folders पुन्हा तयार करता येतात; मात्र त्यासाठी अनेक तासांचा CPU time लागू शकतो. फक्त database dump पुरेसा नाही, कारण त्यात केवळ metadata असतो आणि त्यावरून कोणतीही फाइल पुनर्संचयित करता येत नाही.

PhotoPrism साठी index साठी स्वतंत्र command आहे.

docker compose exec photoprism photoprism backup -i -f

यामुळे storage/backup/ अंतर्गत SQL dump लिहिला जातो. त्यानंतर originals folder आणि storage folder ची प्रत तयार करा. PhotoPrism प्रत्येक फोटोचे वर्णन करणाऱ्या sidecar YAML files देखील लिहिते. त्यामुळे index हरवला तरी files मधून तो पुन्हा तयार करता येतो. अनेक दशकांपर्यंत जतन करण्याच्या archive साठी हा महत्त्वाचा लाभ आहे.

तुम्ही कोणतीही पद्धत निवडा, तरी ते backups ठराविक वेळापत्रकानुसार सर्व्हरबाहेर encrypted, deduplicated restic backups to remote storage पाठवा. लायब्ररी असलेल्या त्याच disk वर साठवलेला backup हा backup मानला जात नाही. Job अयशस्वी झाल्यावर सूचना पाठवण्याची व्यवस्था करा. कारण मार्चमध्ये शांतपणे बंद झालेला backup job आणि काल रात्री यशस्वीपणे चाललेला job, तो पुनर्संचयित करण्याची गरज भासेपर्यंत अगदी सारखे दिसतात. self-hosted ntfy server ही अयशस्वीतेची सूचना त्याच संध्याकाळी तुमच्या फोनवर पाठवेल.

कोणते चालवावे

तुमचे फोटो फोनवर असतील, एकापेक्षा जास्त व्यक्तींना camera roll चा backup घ्यायचा असेल आणि सर्व्हरला 6 GB किंवा त्याहून अधिक RAM देऊ शकत असाल, तर Immich चालवा. स्वतः host करता येणाऱ्या Google Photos शी हे सर्वाधिक साम्य असलेले अॅप आहे आणि त्याचा mobile अनुभव हा मुख्य उद्देश आहे. आमच्या Immich install करण्यासाठीच्या चरण-दर-चरण मार्गदर्शिकेत memory kills आणि upgrade traps यांचे सविस्तर वर्णन आहे.

डिस्कवर आधीपासून photo archive असेल, maps आणि metadata महत्त्वाचे वाटत असतील, स्वतःची folder structure कायम ठेवायची असेल किंवा तुमच्या VPS मध्ये 4 GB RAM असेल आणि swapping करणाऱ्या library पेक्षा व्यवस्थित चालणारी library हवी असेल, तर PhotoPrism चालवा. हे अधिक चांगले curation tool आहे आणि कमी क्षमतेच्या hardware वर त्याचा ताण कमी असतो.

दोन्ही अॅप्स चालवणेही योग्य ठरू शकते. Immich दररोज फोनवरून फोटो घेण्याचे काम हाताळेल. वर्षातून एकदा ठेवायचे फोटो तुमच्या archive मध्ये वर्गीकृत करा आणि PhotoPrism ला त्यांचे index तयार करू द्या. दोन्ही अॅप्समध्ये संघर्ष होत नाही, कारण PhotoPrism folders वाचतो, तर Immich स्वतःच्या folders चे व्यवस्थापन करतो.

FAQ

PhotoPrism आणि Immich एकच photo folder वापरू शकतात का?

दोन्ही दिशांनी सुरक्षितपणे वापरता येत नाही. PhotoPrism originals folder चे indexing करते आणि read-only mode मध्ये चालत नसल्यास त्यात लिहिणारी features उपलब्ध असतात, तर Immich ला त्याच्या upload location मधील contents चे संपूर्ण नियंत्रण अपेक्षित असते. Immich च्या library folder ची read-only copy PhotoPrism ला browse करण्यासाठी देता येते; परंतु दोन्ही apps ना एकाच files चे व्यवस्थापन करू देऊ नका. PhotoPrism indexing करत असताना Immich चे storage template त्या files ना हलवू किंवा rename करू शकते.

माझ्या photos ची एकमेव copy ठेवण्यासाठी Immich पुरेसे stable आहे का?

कोणत्याही self-hosted app कडे कोणत्याही गोष्टीची एकमेव copy ठेवू नये. Immich आता semantic versioning वापरते आणि breaking changes major releases पुरते मर्यादित असल्याचे सांगते. त्यामुळे IMMICH_VERSION ला v3 सारख्या major version tag वर pin करा, release notes वाचा आणि नंतर docker compose pull && docker compose up -d वापरून upgrade करा. Downgrading समर्थित नाही, अगदी त्याच minor version मध्येही नाही. त्यामुळे प्रत्येक upgrade पूर्वी database dump घ्या. Original files चा server बाहेर backup ठेवा; त्यामुळे जोखीम कमी राहते.

Immich चे machine learning container सतत restart का होते?

सामान्यतः ते जास्त memory वापरल्यामुळे kill केले जाते. docker compose ps --all चालवा, कारण त्या flag शिवाय stopped container दिसत नाही. त्यानंतर machine learning service code 137 सह exit होत आहे का ते तपासा. या code चा अर्थ process ला signal 9 ने kill केले गेले असा आहे. Kernel चा out of memory killer हे सर्वसाधारण कारण आहे, परंतु ते एकमेव कारण नाही. त्यामुळे sudo dmesg | grep -i 'out of memory' वापरून त्याची खात्री करा. Swap जोडा किंवा 4 GB machine वर machine learning पूर्णपणे disable करा. Container वर memory limit लावल्याने ते throttle होत नाही. Limit गाठल्यावर ते तरीही kill केले जाते, परंतु server मधील इतर processes साठी memory संपवत नाही. Machine learning शिवाय smart search आणि face recognition काम करत नाहीत; मात्र Immich च्या उर्वरित features व्यवस्थित चालतात.

PhotoPrism ला MariaDB आवश्यक आहे का, की SQLite पुरेसे आहे?

SQLite काम करते आणि personal library साठी योग्य आहे. मात्र ते वापरताना PhotoPrism स्वतःला four workers पर्यंत मर्यादित करते. High concurrency अधिक चांगल्या प्रकारे हाताळत असल्यामुळे docs मध्ये MariaDB वर switch करण्याची शिफारस केली आहे. Project सोबत वितरित केलेल्या compose file मध्ये MariaDB आधीच समाविष्ट आहे. त्यामुळे recommended path हाच default path देखील आहे.

माझ्या library च्या size पेक्षा किती अतिरिक्त disk space ठेवावे?

दोन्हीपैकी कोणत्याही app साठी originals च्या size वर 10 ते 20 percent अतिरिक्त जागा ठेवा. यात generated thumbnails आणि transcoded video previews साठी जागा समाविष्ट होते. 200 GB collection साठी library साठीच साधारण 220 ते 240 GB आवश्यक असतात. याशिवाय database आणि भविष्यातील growth साठी जागा ठेवा. त्याच volume वर complete local backup copy ठेवत असल्यास, इतर कोणतीही गोष्ट मोजण्यापूर्वी originals आणि त्या copy साठी किमान 400 GB आवश्यक असतात. त्यामुळे साधारण 450 GB ची तरतूद करा किंवा ती copy separate volume वर ठेवा.

हा लेख उपयुक्त होता का?