PhotoPrism vs Immich: ఏ photo server ఎంచుకోవాలి?
PhotoPrism, Immichలో నిజమైన RAM అవసరాలు, phone apps, maps, library నిర్వహణ తేడాలు, VPSలో అమలు చేసేటప్పుడు అవసరమైన ఖచ్చితమైన backup commands తెలుసుకోండి.
PhotoPrism మరియు Immich: సంక్షిప్త సమాధానం
PhotoPrism మరియు Immich మధ్య ఎంపిక అనేది ఒకే ఉత్పత్తి యొక్క రెండు వెర్షన్ల మధ్య ఎంపిక కాదు; ఇది రెండు వేర్వేరు అవసరాల మధ్య ఎంపిక. Immich, Google Photos కు ప్రత్యామ్నాయం: ఒక phone app మీ camera roll ను స్వయంచాలకంగా backup చేస్తుంది. మీరు పొందే timeline, phone gallery నుంచి మారే వారికి పరిచితంగా ఉంటుంది. PhotoPrism, మీ వద్ద ఇప్పటికే ఉన్న photo library ను నిర్వహిస్తుంది: ఇది disk పై ఉన్న files యొక్క folders ను index చేస్తుంది, వాటి metadata ను చదువుతుంది, వాటిని map పై చూపిస్తుంది, మరియు files ఉన్న ప్రదేశాన్ని ఎలాంటి మార్పు లేకుండా అలాగే ఉంచుతుంది.
సమస్య “నా phone నిండిపోయింది, Google Photos నుంచి బయటకు రావాలి” అనేదైతే Immich ను ఎంచుకోండి. సమస్య “ఒక drive లో 400 GB photos ఉన్నాయి, వాటిలో ఏదీ కనుగొనలేకపోతున్నాను” అనేదైతే PhotoPrism ను ఎంచుకోండి. రెండూ open source ప్రాజెక్టులు. రెండూ సాధారణ VPS పై Docker containers గా నడుస్తాయి. రెండూ third party కు ఏదీ పంపకుండా మీ library ను index చేసి search చేయగలవు.
తాత్విక విభజన, అది ప్రతిదానినీ ఎందుకు నిర్ణయిస్తుంది
Immich ఫైళ్లను స్వాధీనం చేసుకుంటుంది. మీరు దానికి ఒక upload location చూపిస్తారు. phone app లేదా web uploader అసలైన ఫైళ్లను అక్కడికి పంపుతుంది. తరువాత Immich వాటిని తన స్వంత path కింద, తన స్వంత naming విధానంతో నిల్వ చేస్తుంది. albums, faces, search గురించి నిజమైన సమాచారం database లో ఉంటుంది. ప్రతి asset యొక్క పూర్తి స్థితి server కు ఎల్లప్పుడూ తెలిసి ఉండటం వల్ల phone అనుభవం మెరుగ్గా ఉంటుంది.
PhotoPrism ఫైళ్లను చదువుతుంది. మీరు ఇప్పటికే నియంత్రిస్తున్న ఒక originals folder ను mount చేస్తారు. PhotoPrism దానిపై index నిర్మిస్తుంది. మీ directory tree మీ నియంత్రణలోనే ఉంటుంది. రేపు PhotoPrism ను తొలగించినా, photos అదే folders లో, అదే పేర్లతో ఉంటాయి. PhotoPrism నేర్చుకున్న సమాచారాన్ని వివరించే sidecar YAML files ను వాటి పక్కనే రాసి ఉంటుంది.
మిగతా చాలా విషయాలను ఈ ఒక్క తేడానే వివరిస్తుంది. Immich ingestion ను నియంత్రించడం వల్ల mobile support బలంగా ఉంటుంది. మీ ప్రస్తుత structure తో ఎప్పుడూ ఘర్షణ పడకపోవడం వల్ల PhotoPrism library curation లో బలంగా ఉంటుంది. photos phones లో ఉండే కుటుంబానికి Immich మెరుగైన ఎంపిక. disk లో ఉండే archive కు 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 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 ను terminate చేస్తుంది. అప్పుడు అది code 137తో exit అయిందని కనిపిస్తుంది. Dockerలో out of memory kill జరిగినప్పుడు ఇదే విధంగా కనిపిస్తుంది. PhotoPrismలోని TensorFlow models చిన్నవిగా ఉంటాయి. అందువల్ల అది crash కాకుండా పనితీరును తగ్గిస్తుంది. 1 GB లేదా అంతకంటే తక్కువ మెమరీ ఉన్న యంత్రాల్లో crash కాకుండా RAW conversion మరియు TensorFlow ను ఆపివేస్తుంది.
రెండు projects కూడా swap అవసరమని చెబుతున్నాయి. Serverలో కనీసం 4 GB swap ఉండాలని PhotoPrism docs స్పష్టంగా పేర్కొంటాయి. ఏదైనా ఒకదాన్ని 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 ను print చేయాలి. అది 0B ను print చేస్తే, swapon విఫలమైంది. సాధారణంగా filesystem fallocate కు support ఇవ్వకపోవడం దీనికి కారణం. అప్పుడు sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 fallbackగా ఉపయోగించబడుతుంది. ఇక్కడ container memory ceilings కూడా ముఖ్యమే. ఒక service మొత్తం యంత్రాన్ని నిలిపివేయకుండా నిరోధించడానికి Docker Composeలో memory limits సెట్ చేయడం ఉపయోగించాలి.
మరొక అవసరం కూడా తరచుగా సమస్యగా మారుతుంది. Immich యొక్క Postgres database నిజమైన ownership మరియు permissions ఉన్న సాధారణ Unix filesystemపై, local storageలో ఉండాలి. అది network shareపై ఎప్పుడూ ఉండకూడదు. PhotoPrism కూడా తన database files విషయంలో ఇదే చెబుతుంది. Mounted object storeపై database ఉంచి ఈ రెండు appsలో ఏదీ సురక్షితంగా నడపలేరు.
ప్రతి అప్లికేషన్ను ఎలా ఇన్స్టాల్ చేయాలి
రెండు ఇన్స్టాలేషన్లలో 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 అక్షరాలు మాత్రమే ఉపయోగించాలి, ఎందుకంటే special characters connection string ను దెబ్బతీస్తాయి. తరువాత దాన్ని ప్రారంభించండి.
docker compose up -d
docker compose psWeb 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 ను మార్చండి. Documentationలో ఇది స్పష్టంగా పేర్కొంది: ఆ fileలో ఉన్న initial passwordతోనే అప్లికేషన్ ప్రారంభమవుతుంది. కనీస పొడవు 8 characters ఉండాలి. Public serverలో default valueను ఎప్పుడూ ఉపయోగించకూడదు. అదే సమయంలో originals volumeను మీ ఫోటోలు ఉన్న folderకు సెట్ చేయండి.
docker compose up -d
docker compose logs -f photoprismPhotoPrism port 2342పై admin userతో అందుబాటులో ఉంటుంది. ఈ రెండు అప్లికేషన్లలో ఏదీ నేరుగా internetకు expose చేయకూడదు. ముందు TLS (transport layer security)తో reverse proxy ఉంచండి. ఇది Docker, TLS మరియు backupsతో self-hosted Nextcloud సెటప్లో ఉపయోగించిన విధానంతో సమానం.
ఏదికి మెరుగైన phone app ఉంది
ఈ విషయంలో ఈ రెండు projects మధ్య అత్యధిక తేడా ఉంది. ఎక్కువ మంది చివరకు Immich ను ఎంచుకోవడానికి ఇదే కారణం.
Immich, Android మరియు iOS కోసం అధికారిక apps ను విడుదల చేస్తుంది. అవి camera roll ను background లో backup చేస్తాయి. అంటే ఎవరూ ఏదీ తెరవకుండానే కొత్త photos phone నుంచి బయటకు వెళ్తాయి. App కు HTTPS endpoint అవసరం. కాబట్టి ఇంటి బయట నుంచి ఉపయోగించాలనుకుంటే reverse proxy తప్పనిసరి.
PhotoPrism కు అధికారిక native app లేదు. ఇది progressive web app ను అందిస్తుంది. దాన్ని browser నుంచి home screen కు జోడించవచ్చు. Phone నుంచి sync చేయడానికి WebDAV (web distributed authoring and versioning) ఉపయోగించాలని project documentation చెబుతుంది. ఇందుకోసం project, PhotoSync అనే third party app ను సిఫారసు చేస్తుంది. ఆ app ను WebDAV ద్వారా /import/ లేదా /originals/ directory కి point చేయాలి. ఇది పనిచేస్తుంది. అయితే Immich తన client లోనే చేసే పనిని ఇక్కడ paid third party app నిర్వహిస్తుంది.
అనేక మంది కుటుంబ సభ్యుల phones కు automatic backup అవసరమైతే, నిర్ణయం స్పష్టంగా ఉంటుంది. Immich.
మెషిన్ లెర్నింగ్ వాస్తవంగా మీకు అందించేది
Immich, CLIPను ఉపయోగించి మీ లైబ్రరీలో semantic search నిర్వహిస్తుంది. అందువల్ల "red bicycle in snow" వంటి queryతో ఎవరూ ఎప్పుడూ tag చేయని ఫోటోలను కూడా కనుగొనవచ్చు. ఇది face detection, clustering, duplicate detection కూడా నిర్వహిస్తుంది. CPUపై పెద్ద importను index చేయడానికి backgroundలో గంటలు పట్టవచ్చు. ఇది సాధారణమే. దీనికి GPU (graphics processing unit) అవసరం లేదు.
PhotoPrism, TensorFlow ఉపయోగించి imagesను labelsగా వర్గీకరిస్తుంది. ఇది facesను గుర్తించి peopleగా group చేస్తుంది. అలాగే location metadataను చదివి places mapను రూపొందిస్తుంది. ఈ map వల్లే చాలామంది PhotoPrismను కొనసాగిస్తారు. ఎక్కడ తీసినదో ఆధారంగా index చేసిన library, ఇరవై సంవత్సరాల ఫోటోలను browse చేయడానికి నిజంగా భిన్నమైన విధానాన్ని అందిస్తుంది. Face recognition ఉచిత Community editionలోనే ఉంటుంది. చెల్లింపు Essentials మరియు Plus membershipsలో మరింత విస్తృతమైన map layers, ఎక్కువ user roles, user management interface వంటి అదనపు ఫీచర్లు ఉంటాయి. July 2026 నాటికి వీటి ధర నెలకు కొన్ని euros నుంచి ప్రారంభమవుతుంది.
Immich పూర్తిగా ఉచితం. ఇందులో paid tier లేదు. PhotoPrism యొక్క ప్రధాన భాగం ఉచితం. అదనపు paid features ఐచ్ఛికంగా అందుబాటులో ఉంటాయి.
బ్యాకప్పులు మీ డేటా నిలిచి ఉంటుందో లేదో నిర్ణయిస్తాయి
Backup లేని photo server లో ఒక disk విఫలమైతే కుటుంబం భద్రపరచిన ప్రతిదీ కోల్పోయే ప్రమాదం ఉంటుంది. రెండు అప్లికేషన్లకూ రెండు రకాల backupలు అవసరం: database మరియు files.
Immich కోసం Postgres container నుంచి database dump తీసుకుని, upload location ను copy చేయండి.
docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gzతర్వాత UPLOAD_LOCATION ను backup చేయండి. మార్చలేని డేటా ఉన్న 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 ను copy చేయండి. PhotoPrism ప్రతి photo ను వివరించే sidecar YAML files ను కూడా రాస్తుంది. అందువల్ల files మాత్రమే ఉపయోగించి కోల్పోయిన index ను మళ్లీ నిర్మించవచ్చు. దశాబ్దాల పాటు ఉంచాలని భావించే archive కు ఇది ముఖ్యమైన ప్రయోజనం.
మీరు ఏది ఎంచుకున్నా, encrypted, deduplicated restic backups to remote storage ను schedule ప్రకారం server వెలుపలికి పంపండి. Library ఉన్న అదే disk పై ఉన్న backup నిజమైన backup కాదు.
ఏదిని అమలు చేయాలి
మీ ఫోటోలు phonesలో ఉంటే, ఒకరికి మించి camera rollను backup చేయాల్సి ఉంటే, అలాగే serverకు 6 GB RAM లేదా అంతకంటే ఎక్కువ కేటాయించగలిగితే Immichను అమలు చేయండి. మీరు స్వయంగా host చేయగల Google Photosకు ఇది అత్యంత సమీప ప్రత్యామ్నాయం. దీని ప్రధాన బలం mobile అనుభవం. మా దశలవారీ Immich installation guide memory వల్ల process ఆగిపోవడం మరియు upgrade సమయంలో ఎదురయ్యే సమస్యలను వివరంగా వివరిస్తుంది.
మీ వద్ద diskలో ఇప్పటికే photo archive ఉంటే, maps మరియు metadataపై శ్రద్ధ ఉంటే, మీ స్వంత folder structureను కొనసాగించాలనుకుంటే, లేదా మీ VPSలో 4 GB RAM మాత్రమే ఉండి swappingకు బదులుగా సరిగ్గా పనిచేసే library కావాలనుకుంటే PhotoPrismను అమలు చేయండి. ఫోటోలను క్రమబద్ధీకరించడానికి ఇది మెరుగైన సాధనం. చిన్న hardwareపై ఇది తక్కువ వనరులను ఉపయోగిస్తుంది.
రెండింటినీ అమలు చేయడం కూడా సముచితమే. రోజువారీ phone ingestionను Immich నిర్వహిస్తుంది. సంవత్సరానికి ఒకసారి ఉంచాల్సిన ఫోటోలను మీ archiveలో క్రమబద్ధీకరించి, వాటిని PhotoPrism index చేయనివ్వవచ్చు. ఇవి పరస్పరం conflict కావు. PhotoPrism foldersను చదువుతుంది, అయితే Immich తన స్వంత storageను నిర్వహిస్తుంది.
FAQ
PhotoPrism మరియు Immich ఒకే photo folder ను పంచుకోగలవా?
రెండు దిశల్లోనూ సురక్షితంగా పంచుకోలేవు. PhotoPrism ఒక originals folder ను చదివి, మీ images పక్కన sidecar YAML files ను రాస్తుంది. Immich మాత్రం తన upload location లోని contents ను తానే నిర్వహించాలని ఆశిస్తుంది. Immich యొక్క library folder కు read-only copy ను చూపించేలా PhotoPrism ను configure చేయవచ్చు. కానీ రెండు apps ను ఒకే files ను నిర్వహించేలా అనుమతించవద్దు. Indexing సమయంలో Immich యొక్క storage template, PhotoPrism నిర్వహిస్తున్న assets ను తరలించవచ్చు లేదా పేర్లు మార్చవచ్చు.
నా photos కు ఏకైక copy ను ఉంచడానికి Immich తగినంత స్థిరంగా ఉందా?
ఏ self-hosted app కూడా ఏదైనా data కు ఏకైక copy ను ఎప్పుడూ ఉంచకూడదు. Immich తరచుగా breaking changes ను విడుదల చేస్తుంది. జాగ్రత్తలేని docker compose pull వల్ల database ప్రారంభం కాకపోవచ్చు. అందువల్ల మీ version ను pin చేయండి, upgrade చేయడానికి ముందు release notes చదవండి. Original files ను server వెలుపల backup చేయండి. అప్పుడు ప్రమాదం తక్కువగా ఉంటుంది.
Immich machine learning container ఎందుకు పదేపదే restart అవుతోంది?
అది ఎక్కువ memory ఉపయోగించడం వల్ల kill చేయబడుతోంది. docker compose ps ను run చేసి, machine learning service code 137 తో exit అవుతోందా చూడండి. ఇది kernel out of memory killer చర్యను సూచిస్తుంది. Swap ను జోడించండి. లేదా container ను kill చేయకుండా throttle చేసేలా memory limit ఇవ్వండి. 4 GB machine లో machine learning ను పూర్తిగా disable చేయవచ్చు. అది లేకపోతే search పనిచేయదు. మిగిలిన Immich సాధారణంగా నడుస్తుంది.
PhotoPrism కు MariaDB అవసరమా, లేదా SQLite సరిపోతుందా?
SQLite పనిచేస్తుంది. Personal library కు అది సరిపోతుంది. అయితే SQLite ఉపయోగించినప్పుడు PhotoPrism తనను తాను four workers కు పరిమితం చేస్తుంది. అధిక concurrency ను మెరుగ్గా నిర్వహిస్తుంది కాబట్టి MariaDB కు మారాలని docs సిఫారసు చేస్తున్నాయి. Project విడుదల చేసే compose file లో MariaDB ఇప్పటికే ఉంది. అందువల్ల సిఫారసు చేసిన విధానమే default విధానం కూడా.
నా library size కంటే అదనంగా ఎంత disk space కేటాయించాలి?
రెండు apps లోనూ మీ originals size పై 10 నుంచి 20 percent అదనంగా కేటాయించండి. ఇది generated thumbnails మరియు transcoded video previews కోసం సరిపోతుంది. 200 GB collection కు database, local backup copy మరియు భవిష్యత్ పెరుగుదలకు స్థలం ఉంచిన తర్వాత సుమారు 300 GB volume అవసరం.