PhotoPrism विरुद्ध Immich: कोणता photo server निवडावा?
PhotoPrism आणि Immich मधील फरक जाणून घ्या: RAM ची किमान गरज, phone apps, नकाशे आणि VPS वर backup साठी आवश्यक अचूक commands यांची तुलना.
PhotoPrism विरुद्ध Immich: थोडक्यात उत्तर
PhotoPrism विरुद्ध Immich ही एकाच उत्पादनाच्या दोन आवृत्त्यांमधील निवड नाही. ही दोन वेगवेगळी कामे करण्यासाठीची निवड आहे. Immich हे Google Photos चा पर्याय आहे. फोनवरील app तुमच्या camera roll चा स्वयंचलित backup घेते. त्यानंतर मिळणारी timeline फोन gallery वापरणे बंद करणाऱ्या कोणालाही परिचित वाटते. PhotoPrism तुम्ही आधीपासून ठेवलेली photo library व्यवस्थित करते. ते disk वरील files असलेले folders index करते, त्यांचा metadata वाचते, त्यांना नकाशावर दाखवते आणि files ज्या ठिकाणी होत्या त्याच ठिकाणी ठेवते.
समस्या "माझ्या फोनमध्ये जागा उरलेली नाही आणि मला Google Photos वापरणे थांबवायचे आहे" अशी असल्यास Immich निवडा. समस्या "माझ्या drive वर photos चे 400 GB आहेत आणि त्यांपैकी काहीही शोधता येत नाही" अशी असल्यास PhotoPrism निवडा. दोन्ही open source आहेत. दोन्ही सामान्य VPS वर Docker containers म्हणून चालतात. तसेच दोन्ही कोणत्याही third party कडे काहीही पाठविल्याशिवाय तुमची library index आणि search करतात.
तत्त्वज्ञानातील फरक आणि तो सर्वकाही का ठरवतो
Immich फाइल्सचे व्यवस्थापन करते. तुम्ही त्याला अपलोडचे स्थान देता. फोन अॅप किंवा वेब अपलोडर मूळ फाइल्स तिथे पाठवतो. त्यानंतर Immich त्या फाइल्स स्वतःच्या पथाखाली आणि स्वतःच्या नामकरण पद्धतीनुसार साठवते. अल्बम, चेहरे आणि शोध यांविषयीची अधिकृत माहिती डेटाबेसमध्ये असते. या रचनेमुळे फोनवरील अनुभव चांगला राहतो, कारण सर्व अॅसेट्सची संपूर्ण सद्यस्थिती सर्व्हरला नेहमी माहीत असते.
PhotoPrism फाइल्स वाचते. तुम्ही आधीपासून व्यवस्थापित करत असलेले originals फोल्डर माउंट करता आणि PhotoPrism त्यावर अनुक्रमणिका तयार करते. तुमची डिरेक्टरी रचना तुमचीच राहते. उद्या तुम्ही PhotoPrism काढून टाकले, तरी छायाचित्रे त्याच फोल्डरमध्ये आणि त्याच नावांनी तिथेच राहतात. PhotoPrism ने शिकलेल्या माहितीचे वर्णन करणाऱ्या साइडकार YAML फाइल्स त्यांच्या शेजारी लिहिलेल्या असतील.
या एका फरकामुळे उर्वरित बहुतेक बाबी स्पष्ट होतात. PhotoPrism तुमच्या विद्यमान रचनेत बदल करण्याचा प्रयत्न करत नाही, त्यामुळे लायब्ररीचे व्यवस्थापन करण्यासाठी ते अधिक सक्षम आहे. फोनवर छायाचित्रे साठवणाऱ्या कुटुंबासाठी Immich हा अधिक योग्य पर्याय आहे. डिस्कवर संग्रह ठेवणाऱ्यांसाठी PhotoPrism हा अधिक योग्य पर्याय आहे.
हार्डवेअरची गरज: Immich अधिक संसाधने मागते
दस्तऐवजीकरणात नमूद केलेली मेमरीची किमान मर्यादा मोठ्या प्रमाणात वेगळी आहे. लहान VPS वर हा फरक सहसा निर्णायक ठरतो.
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 आणि शिफारस केलेली 8 GB RAM नमूद केली आहे. 4 GB मशीनवर ते फक्त machine learning बंद केल्यास चालू शकते, अशी नोंदही आहे. PhotoPrism मध्ये 3 GB भौतिक मेमरी आणि दोन CPU cores आवश्यक असल्याचे नमूद केले आहे. RAM चे प्रमाण core count शी जुळले पाहिजे, असेही त्यात म्हटले आहे.
हा फरक वास्तविक आहे. तो machine learning container मुळे निर्माण होतो. Immich आपली models स्वतंत्र immich-machine-learning service मध्ये चालवते. ही service CLIP (contrastive language image pretraining) आणि face detection models मेमरीमध्ये लोड करते. 2 GB मशीनवर kernel हा container बंद करते. Docker मध्ये out of memory मुळे झालेल्या termination प्रमाणे तो code 137 सह exit झालेला दिसतो. PhotoPrism मधील TensorFlow models लहान आहेत. त्यामुळे ते बंद होण्याऐवजी कार्यक्षमता कमी करते. 1 GB किंवा त्यापेक्षा कमी मेमरी असलेल्या मशीनवर ते crash होण्याऐवजी RAW conversion आणि TensorFlow बंद करते.
दोन्ही projects swap वापरण्याची आवश्यकता सांगतात. PhotoPrism च्या दस्तऐवजीकरणात server वर किमान 4 GB swap असावा, असे स्पष्टपणे नमूद केले आहे. यापैकी कोणतेही application 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 -hfree -h ने आता 4.0Gi दाखवणारी Swap: line दाखवली पाहिजे. त्याऐवजी 0B दिसल्यास swapon अयशस्वी झाले आहे. याचे सामान्य कारण म्हणजे filesystem fallocate समर्थित करत नाही. अशा वेळी sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 हा fallback असतो. येथे container memory ceilings देखील महत्त्वाच्या आहेत. Docker Compose मध्ये memory limits सेट करणे यामुळे एखादी जास्त मेमरी वापरणारी service संपूर्ण मशीन बंद पाडणार नाही.
आणखी एक आवश्यकता अनेकांच्या लक्षात येत नाही. Immich चा Postgres database प्रत्यक्ष ownership आणि permissions असलेल्या सामान्य Unix filesystem वर, local storage मध्ये असला पाहिजे. तो network share वर ठेवू नका. PhotoPrism देखील त्याच्या database files साठी हीच अट सांगते. Mounted object store वर database ठेवून यापैकी कोणतेही application सुरक्षितपणे चालवता येत नाही.
प्रत्येकाची स्थापना कशी करावी
दोन्ही स्थापनेमध्ये विक्रेत्याने दिलेली compose फाइल आणि एक command असतो. प्रथम Docker Engine आणि Compose plugin सेट अप करा. याची माहिती VPS वरील Docker Compose साठीच्या आमच्या मार्गदर्शिकेत दिली आहे.
Immich प्रत्येक release सोबत त्याची compose फाइल आणि नमुना environment फाइल प्रकाशित करते.
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 मधील अक्षरे वापरून बदलणे आवश्यक आहे, कारण special characters मुळे connection string काम करत नाही. त्यानंतर ते सुरू करा.
docker compose up -d
docker compose psweb interface port 2283 वर उपलब्ध होते. त्या पृष्ठाद्वारे नोंदणी केलेले पहिले account administrator बनते. त्यामुळे ते त्वरित उघडा आणि नोंदणी करा. उघडलेले instance internet वर तसेच ठेवू नका.
PhotoPrism मध्ये MariaDB समाविष्ट असलेली एक compose फाइल दिली जाते.
sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yamlपहिल्यांदा सुरू करण्यापूर्वी compose.yaml उघडा आणि PHOTOPRISM_ADMIN_PASSWORD बदला. दस्तऐवजांमध्ये हे स्पष्टपणे सांगितले आहे: app या फाइलमधील initial password वापरून सुरू होते, किमान लांबी 8 characters आहे आणि public server वर default value कधीही वापरू नये. त्याच वेळी originals volume तुमचे photos असलेल्या folder वर सेट करा.
docker compose up -d
docker compose logs -f photoprismPhotoPrism port 2342 वर admin user सह उपलब्ध होते. कोणतेही app थेट internet वर उपलब्ध करू नये. त्याच्या समोर TLS (transport layer security) असलेला reverse proxy ठेवा. हीच रचना Docker, TLS आणि backups सह self-hosted Nextcloud साठी वापरली जाते.
कोणत्या प्रकल्पाचे फोन ॲप अधिक चांगले आहे
या बाबतीत हे दोन प्रकल्प सर्वाधिक वेगळे आहेत आणि त्यामुळेच बहुतेक लोक शेवटी Immich वापरतात.
Immich Android आणि iOS साठी अधिकृत ॲप्स जारी करते. ही ॲप्स camera roll चा पार्श्वभूमीत backup घेतात. त्यामुळे कोणतेही ॲप उघडल्याशिवाय नवीन फोटो फोनमधून बाहेर पाठवले जातात. ॲपला HTTPS endpoint आवश्यक असतो. त्यामुळे घराबाहेरून वापरण्याची योजना असल्यास reverse proxy आवश्यक आहे.
PhotoPrism चे अधिकृत native ॲप नाही. ते progressive web app जारी करते. हे ॲप browser मधून home screen वर जोडता येते. फोनमधून समक्रमण करण्यासाठी WebDAV (web distributed authoring and versioning) वापरण्याचे दस्तऐवजीकरण प्रकल्पात केले आहे. यासाठी PhotoSync नावाचे तृतीय-पक्ष ॲप वापरण्याची शिफारस प्रकल्प करतो. ते /import/ किंवा /originals/ directory कडे WebDAV द्वारे निर्देशित करावे. हे कार्य करते. मात्र यासाठी सशुल्क तृतीय-पक्ष ॲप वापरावे लागते, तर Immich हे काम स्वतःच्या client मध्येच करते.
कुटुंबातील अनेक सदस्यांसाठी फोनचा स्वयंचलित backup आवश्यक असल्यास निर्णय स्पष्ट आहे. Immich.
मशीन लर्निंग प्रत्यक्षात काय उपलब्ध करून देते
Immich तुमच्या लायब्ररीमध्ये CLIP वापरून अर्थाधारित शोध घेते. त्यामुळे "red bicycle in snow" सारख्या शोधामध्ये कोणीही टॅग न केलेली छायाचित्रे सापडतात. हे चेहरा शोधणे, चेहऱ्यांचे गट तयार करणे आणि डुप्लिकेट शोधणेही करते. मोठ्या प्रमाणातील आयात CPU वर अनुक्रमित करण्यास पार्श्वभूमीत अनेक तास लागू शकतात. हे सामान्य आहे आणि यासाठी GPU (graphics processing unit) आवश्यक नाही.
PhotoPrism TensorFlow वापरून प्रतिमांचे labels मध्ये वर्गीकरण करते, चेहरे शोधते आणि त्यांना व्यक्तींनुसार गटबद्ध करते. तसेच ते स्थानविषयक metadata वाचून ठिकाणांचा नकाशा तयार करते. लोक PhotoPrism वापरत राहण्याचे मुख्य कारण हा नकाशा आहे. घटना ज्या ठिकाणी घडली त्यानुसार अनुक्रमित केलेली लायब्ररी वीस वर्षांच्या छायाचित्रांमध्ये पाहण्याची पूर्णपणे वेगळी पद्धत देते. Face recognition हे विनामूल्य Community edition मध्ये समाविष्ट आहे. सशुल्क Essentials आणि Plus memberships मध्ये अधिक समृद्ध map layers, अधिक user roles आणि user management interface यांसारख्या अतिरिक्त सुविधा मिळतात. July 2026 नुसार त्यांची सुरुवात दरमहा काही युरोंपासून होते.
Immich पूर्णपणे विनामूल्य आहे आणि त्याची कोणतीही सशुल्क tier नाही. PhotoPrism चे core विनामूल्य आहे आणि त्यात ऐच्छिक सशुल्क extras उपलब्ध आहेत.
बॅकअप ठरवतात की ते टिकवता येईल की नाही
बॅकअप नसलेला फोटो सर्व्हर एका डिस्कमध्ये बिघाड झाल्यास कुटुंबाकडे असलेले सर्व काही गमावू शकतो. दोन्ही अॅप्ससाठी दोन बॅकअप आवश्यक आहेत: डेटाबेस आणि फाइल्स.
Immich साठी Postgres कंटेनरमधून डेटाबेस dump करा आणि upload स्थानाची प्रत बनवा.
docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gzत्यानंतर UPLOAD_LOCATION चा बॅकअप घ्या. अपरिवर्तनीय डेटा असलेले फोल्डर म्हणजे upload, library आणि profile. thumbs आणि encoded-video फोल्डर पुन्हा तयार करता येतात; मात्र त्यासाठी CPU वेळेचे अनेक तास लागू शकतात. डेटाबेस dump एकट्याने काहीही पुनर्संचयित करू शकत नाही, कारण त्यात केवळ metadata असते.
PhotoPrism साठी index तयार करण्यासाठी स्वतंत्र command आहे.
docker compose exec photoprism photoprism backup -i -fयामुळे storage/backup/ अंतर्गत SQL dump तयार होतो. त्यानंतर originals फोल्डर आणि storage फोल्डरची प्रत बनवा. PhotoPrism प्रत्येक फोटोचे वर्णन करणाऱ्या sidecar YAML files देखील लिहिते. त्यामुळे index हरवला तरी केवळ files वापरून तो पुन्हा तयार करता येतो. अनेक दशकांपर्यंत जतन करण्याच्या archive साठी हा एक महत्त्वाचा फायदा आहे.
तुम्ही कोणताही पर्याय निवडा, दूरस्थ storage वर encrypted, deduplicated restic backups वापरून ठरावीक वेळापत्रकानुसार हे बॅकअप सर्व्हरबाहेर पाठवा. लायब्ररीच्या त्याच डिस्कवर असलेला बॅकअप हा बॅकअप मानला जात नाही.
तुम्ही कोणते चालवावे
तुमचे फोटो फोनवर असल्यास, एकापेक्षा जास्त व्यक्तींना कॅमेरा रोलचा बॅकअप घ्यायचा असल्यास आणि सर्व्हरला 6 GB किंवा त्याहून अधिक RAM देऊ शकत असल्यास Immich चालवा. स्वतः होस्ट करता येणाऱ्या Google Photos च्या सर्वात जवळचे हे सॉफ्टवेअर आहे आणि त्याचा मोबाइल अनुभव हा त्याचा मुख्य उद्देश आहे. आमच्या Immich स्थापनेसाठीच्या चरण-दर-चरण मार्गदर्शिकेत memory kills आणि upgrade traps यांचे सविस्तर वर्णन आहे.
तुमच्याकडे डिस्कवर आधीपासून फोटो संग्रह असल्यास, नकाशे आणि metadata तसेच स्वतःची folder structure जपणे महत्त्वाचे असल्यास, किंवा तुमच्या VPS मध्ये 4 GB RAM असल्यास आणि swapping करणाऱ्या library पेक्षा व्यवस्थित चालणारी library हवी असल्यास PhotoPrism चालवा. हे अधिक चांगले curation tool आहे आणि कमी क्षमतेच्या hardware वर याचा भार कमी असतो.
दोन्ही एकत्र चालवणेही योग्य आहे. Immich दररोज फोनवरून फोटो घेण्याचे काम करते. वर्षातून एकदा ठेवायचे फोटो तुमच्या archive मध्ये वर्गीकृत करा आणि PhotoPrism ला ते index करू द्या. त्यांच्यात संघर्ष होत नाही, कारण PhotoPrism folders वाचते, तर Immich स्वतःची रचना व्यवस्थापित करते.
FAQ
PhotoPrism आणि Immich समान फोटो फोल्डर सामायिक करू शकतात का?
दोन्ही दिशांनी हे सुरक्षितपणे करता येत नाही. PhotoPrism originals फोल्डर वाचते आणि तुमच्या प्रतिमांच्या शेजारी sidecar YAML फाइल लिहिते. त्याउलट, Immich ला त्याच्या upload location मधील सामग्रीचे संपूर्ण नियंत्रण अपेक्षित असते. Immich च्या library फोल्डरची read-only प्रत ब्राउझ करण्यासाठी तुम्ही PhotoPrism ला तिच्याकडे निर्देशित करू शकता. परंतु दोन्ही ॲप्सना समान फाइल्स व्यवस्थापित करू देऊ नका. कारण Immich indexing करताना त्याचा storage template PhotoPrism वापरत असलेल्या assets हलवू किंवा त्यांची नावे बदलू शकतो.
माझ्या फोटोंची एकमेव प्रत ठेवण्यासाठी Immich पुरेसे स्थिर आहे का?
कोणत्याही self-hosted ॲपमध्ये कोणत्याही डेटाची एकमेव प्रत कधीही ठेवू नका. Immich मध्ये वारंवार breaking changes येतात. निष्काळजी docker compose pull मुळे database सुरू होऊ शकत नाही. त्यामुळे तुमची version निश्चित ठेवा आणि upgrade करण्यापूर्वी release notes वाचा. मूळ फाइल्सचा server बाहेर backup ठेवा. त्यामुळे जोखीम कमी राहते.
Immich machine learning container वारंवार restart का होत आहे?
तो जास्त memory वापरल्यामुळे बंद केला जात आहे. docker compose ps चालवा आणि machine learning service code 137 सह बंद होत आहे का ते तपासा. हा kernel चा out of memory killer आहे. swap जोडा किंवा container ला memory limit द्या, म्हणजे तो बंद होण्याऐवजी throttle केला जाईल. 4 GB मशीनवर machine learning पूर्णपणे disable करणेही शक्य आहे. त्याशिवाय search काम करणे थांबते. Immich चे उर्वरित भाग व्यवस्थित चालतात.
PhotoPrism साठी MariaDB आवश्यक आहे का, की SQLite पुरेसे आहे?
SQLite कार्य करते आणि वैयक्तिक library साठी पुरेसे आहे. परंतु ते वापरताना PhotoPrism स्वतःला चार workers पर्यंत मर्यादित ठेवते. उच्च concurrency अधिक चांगल्या प्रकारे हाताळत असल्यामुळे docs MariaDB वर switch करण्याची शिफारस करतात. Project कडून वितरित केलेल्या compose file मध्ये MariaDB आधीच समाविष्ट आहे. त्यामुळे शिफारस केलेला मार्ग हाच default मार्ग आहे.
माझ्या library च्या आकारापेक्षा किती अतिरिक्त disk space ठेवावे?
दोन्हीपैकी कोणत्याही ॲपसाठी originals च्या आकारावर 10 ते 20 percent अतिरिक्त जागा ठेवा. यात generated thumbnails आणि transcoded video previews साठी जागा समाविष्ट होते. 200 GB collection साठी database, local backup copy आणि भविष्यातील वाढीसाठी जागा ठेवल्यानंतर साधारण 300 GB volume आवश्यक असते.