SSD Nodes Learn Hosting plans →
Mga Gabay Matt ConnorNi Matt Connor · Na-update 2026-10-30

PhotoPrism o Immich: Alin ang photo server?

Ihambing ang PhotoPrism at Immich: RAM floors, phone apps, maps, storage model, at eksaktong backup commands para sa bawat server sa VPS.

PhotoPrism kumpara sa Immich: ang maikling sagot

Ang pagpili sa PhotoPrism o Immich ay pagpili sa pagitan ng dalawang magkaibang gawain, hindi sa dalawang bersyon ng iisang produkto. Pinapalitan ng Immich ang Google Photos: awtomatikong nagba-back up ang isang phone app ng iyong camera roll, at pamilyar ang timeline na makikita mo sa sinumang lumilipat mula sa gallery ng phone. Inaayos ng PhotoPrism ang photo library na mayroon ka na: ini-index nito ang mga folder ng file sa disk, binabasa ang metadata ng mga ito, inilalagay ang mga ito sa mapa, at iniiwan ang mga file sa eksaktong kinalalagyan ng mga ito.

Piliin ang Immich kung ang problema ay “puno na ang phone ko at gusto kong umalis sa Google Photos.” Piliin ang PhotoPrism kung ang problema ay “may 400 GB akong mga larawan sa isang drive at wala akong mahanap sa mga ito.” Parehong open source ang mga ito, parehong tumatakbo bilang mga Docker container sa isang karaniwang VPS, at parehong nag-i-index at naghahanap sa iyong library nang walang ipinapadalang anuman sa third party.

Ang paghahati ng pilosopiya, at kung bakit nito tinutukoy ang lahat

Si Immich ang namamahala sa mga file. Ituturo mo ito sa isang upload location, magpapadala rito ng mga original ang phone app o web uploader, at ise-save ng Immich ang mga ito sa sarili nitong path gamit ang sarili nitong naming. Nasa database ang source of truth para sa mga album, mukha, at search. Dahil dito, maayos ang phone experience: palaging alam ng server ang kumpletong state ng bawat asset.

Binabasa ni PhotoPrism ang mga file. Ima-mount mo ang originals folder na ikaw na ang kumokontrol, at gagawa si PhotoPrism ng index nito. Mananatiling sa iyo ang directory tree. Kung aalisin mo si PhotoPrism bukas, mananatili ang mga larawan sa parehong folder at may parehong pangalan. Mananatili rin sa sarili nitong storage folder ang mga sidecar YAML file na isinulat ni PhotoPrism upang ilarawan ang mga natutuhan nito; doon nito inilalagay ang mga ito bilang default.

Ipinapaliwanag ng nag-iisang pagkakaibang ito ang karamihan sa iba pang pagkakaiba. Malakas ang mobile support ni Immich dahil siya ang kumokontrol sa ingestion. Malakas naman ang library curation ni PhotoPrism dahil hindi nito binabago ang dati mong structure. Mas angkop si Immich para sa pamilyang nasa mga phone ang mga larawan. Mas angkop si PhotoPrism para sa archive na nasa isang disk.

Hardware appetite: Mas mataas ang hinihinging resources ng Immich

Malaki ang agwat ng mga nakadokumentong minimum na memory, at sa maliit na VPS, ito ang karaniwang nagiging pangunahing batayan sa pagpili.

TsartDocumented minimum memory, as of October 2026
Ang datos sa likod ng tsart na ito
[
  {
    "label": "Immich",
    "min_ram_gb": 6
  },
  {
    "label": "PhotoPrism",
    "min_ram_gb": 3
  }
]

Itinatakda ng Immich ang 6 GB na RAM bilang minimum at 8 GB bilang inirerekomenda. May tala rin ito na maaari lamang patakbuhin ang Immich sa machine na may 4 GB kung naka-off ang machine learning. Itinatakda naman ng PhotoPrism ang 3 GB na physical memory at dalawang CPU core. Sinasabi rin nito na lampas sa minimum na iyon, dapat tumugma ang dami ng RAM sa bilang ng core.

Totoo ang agwat, at nagmumula ito sa machine learning container. Pinapatakbo ng Immich ang mga model nito sa hiwalay na immich-machine-learning service na naglo-load sa memory ng CLIP (contrastive language image pretraining) at mga model para sa face detection. Sa machine na may 2 GB, pinapatay ng kernel ang container na iyon. Makikita mong nag-exit ito gamit ang code 137, ang status para sa prosesong pinatay gamit ang signal 9. Ganito lumalabas sa Docker ang pagpatay dahil naubusan ng memory. Gumagamit ang mga built-in model ng PhotoPrism ng ONNX. Ayon sa dokumentasyon nito, karaniwang maayos ang performance ng mga ito sa lahat ng uri ng hardware. May dokumentado rin itong fallback kapag kapos ang memory: sa mga machine na may 1 GB o mas kaunti, dini-disable nito ang RAW conversion at face recognition. Gayunman, hindi ito garantiya ng stability. Kapag mas mababa sa minimum nitong 3 GB, nagbababala ang project tungkol sa instability at mga problema sa performance, kaya ituring ang minimum bilang tunay na minimum.

Malinaw na sinasabi ng dokumentasyon ng PhotoPrism na kailangan ng server ng hindi bababa sa 4 GB na swap. Hindi binabanggit ng requirements page ng Immich ang swap, pero nagbibigay ito ng dagdag na headroom sa machine learning container nito sa maliit na machine. Idagdag ang swap bago i-install ang alinman sa dalawang application.

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

Dapat mag-print ngayon ang free -h ng isang Swap: line na nagpapakita ng 4.0Gi. Kung 0B ang ma-print nito, nabigo ang swapon, karaniwan dahil hindi sinusuportahan ng filesystem ang fallocate, at sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 ang ginagamit na fallback. Mahalaga rin dito ang container memory ceilings. Ang pagtatakda ng memory limits sa Docker Compose ang paraan upang mapigilan ang isang service na sobrang kumonsumo ng resources at pabagsakin ang buong machine. Ang exception ay ang PhotoPrism mismo: ipinapayo ng dokumentasyon nito na huwag magtakda ng hard memory limit sa container nito, dahil nangangailangan ito ng dagdag na memory habang panandaliang nag-i-index ng malalaking file, at maaaring magdulot ng hindi inaasahang pag-restart ang limit.

May isa pang requirement na madalas nakakaligtaan. Kailangang nasa normal na Unix filesystem ang Postgres database ng Immich, na may tunay na ownership at permissions, at nasa local storage. Hindi ito dapat ilagay sa network share. Nagbababala ang PhotoPrism na huwag kailanman mag-store ng database files nito sa shared network folder. Sinasabi rin nitong local SSD storage ang pinakamainam na lugar para sa mga file na iyon. Hindi ligtas patakbuhin ang alinmang application kapag nasa mounted object store ang database nito.

Paano i-install ang bawat isa

Ang dalawang installation ay binubuo ng vendor compose file at isang command. I-set up muna ang Docker Engine at Compose plugin, gaya ng tinalakay sa aming gabay sa Docker Compose sa isang VPS.

Inilalabas ng Immich ang compose file at example environment file nito sa bawat release.

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

I-edit ang .env bago magsimula. Dito ilalagay ang iyong mga original sa UPLOAD_LOCATION. May gumaganang default ang DB_PASSWORD, at inirerekomenda ng Immich na palitan ito ng random password, kahit hindi ito sapilitan. Hindi publicly exposed ang Postgres, kaya ginagamit lamang ang password para sa local authentication. Gayunman, walang kapalit na gastos ang pagtatakda ng random na password. Gamitin lamang ang mga character na A-Za-z0-9, dahil ayon sa documentation ng Immich, maaaring magdulot ng problema ang ibang character kapag bina-parse ng Docker ang value. Pagkatapos, simulan ito.

docker compose up -d
docker compose ps

Available ang web interface sa port 2283. Ang unang account na i-register sa page na iyon ang magiging administrator. Kaya i-access ito at mag-register agad, sa halip na mag-iwan ng bukas na instance sa internet.

Ang PhotoPrism ay may isang compose file na kasama na ang MariaDB.

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

Buksan ang compose.yaml at palitan ang PHOTOPRISM_ADMIN_PASSWORD bago ang unang pagsisimula. Malinaw ang paalala sa documentation: magsisimula ang app gamit ang initial password na nasa file na iyon, ang minimum na haba ay 8 characters, at hindi dapat gamitin ang default value sa isang public server. Itakda rin kasabay nito ang originals volume sa folder na naglalaman ng iyong mga larawan.

docker compose up -d
docker compose logs -f photoprism

Available ang PhotoPrism sa port 2342 gamit ang user na admin. Hindi dapat direktang i-expose ang alinmang app. Maglagay ng reverse proxy na may TLS (transport layer security) sa harap nito, gaya ng setup para sa self-hosted Nextcloud na may Docker, TLS at backups, o panatilihing private ang server at i-access ito sa pamamagitan ng VPN. Kung ang VPS ay gagamitin din para sa ibang bagay bukod sa mga larawan, ipatupad ang parehong paghihigpit sa bawat service na idaragdag mo rito. Isang halimbawa ang self-hosted RustDesk relay, na kailangan lamang maabot ang sarili nitong dalawang port at wala nang iba.

Alin ang may mas magandang phone app

Dito pinakamalaki ang pagkakaiba ng dalawang project, at ito ang dahilan kung bakit karamihan ay napupunta sa Immich.

May official apps ang Immich para sa Android at iOS. Gumagawa ang mga ito ng background backup ng camera roll, kaya umaalis sa phone ang mga bagong larawan nang walang kailangang buksan. Para magamit ito kapag wala sa bahay, tatlong paraan ang idinodokumento ng Immich: VPN gaya ng WireGuard o OpenVPN, Tailscale, o reverse proxy na naghahatid ng HTTPS. Ang reverse proxy ang nagbibigay-daan para makakonekta ang phone apps nang hindi kailangang may VPN app sa bawat phone. Nagbababala ang Immich na huwag kailanman direktang mag-forward ng port 2283 sa internet nang walang karagdagang configuration.

Walang official native app ang PhotoPrism. Nagbibigay ito ng progressive web app na idinadagdag sa home screen mula sa browser, at idinodokumento nito ang WebDAV (web distributed authoring and versioning) bilang paraan ng pag-sync mula sa phone. Inirerekomenda ng project ang third-party app na tinatawag na PhotoSync para rito, na itinuturo sa /import/ o /originals/ directory gamit ang WebDAV. Gumagana ito, pero isang bayad na third-party app ang gumagawa ng isang function na kasama na sa sariling client ng Immich.

Kung kailangan ang automatic phone backup para sa ilang miyembro ng pamilya, malinaw na ang sagot. Immich.

Ano ang aktuwal na naibibigay ng machine learning

Gumagawa ang Immich ng semantic search sa library mo gamit ang CLIP. Kaya nitong hanapin ang mga larawan na hindi kailanman na-tag ng sinuman, gaya ng para sa query na “red bicycle in snow.” Gumagawa rin ito ng face detection at clustering, pati duplicate detection. Kapag malaki ang import at CPU ang gamit, maaaring tumakbo ang indexing nang ilang oras sa background. Normal ito at hindi kailangan ng GPU (graphics processing unit).

Kino-classify ng PhotoPrism ang mga image bilang mga label gamit ang built-in na ONNX model. Nakakakita rin ito ng mga mukha at pinapangkat ang mga ito bilang mga tao gamit ang ONNX face models. Binabasa nito ang location metadata upang gumawa ng places map. Maaaring gumamit ng vision.yml file sa config folder nito upang palitan ang label at caption generation ng Ollama o OpenAI, kung kailangan mo ang mga ito. Ang map ang feature na dahilan kung bakit nananatili ang maraming user: ibang paraan talaga ng pag-browse ng dalawampung taon ng mga larawan ang library na naka-index ayon sa lugar kung saan nangyari ang mga ito. Gumagana rin ang parehong ideya sa iba pang media collection. Ang 90s video store front end ng Halcyon para sa Jellyfin ang katumbas nito para sa mga pelikula, kung saan nagba-browse ka ayon sa shelf sa halip na ayon sa listahan. Kasama ang face recognition sa libreng Community edition. Nagdaragdag ang bayad na Essentials at Plus memberships ng mga dagdag gaya ng mas maraming map layer, mas maraming user role, at user management interface. Nagsisimula ang presyo sa ilang euro bawat buwan, na sinisingil taun-taon, noong October 2026.

Walang paywalled feature ang Immich, at sinasabi ng proyekto na hindi ito kailanman magkakaroon nito. Nagbebenta ito ng optional lifetime product keys: $25 para sa isang user o $100 para sa buong server, batay sa mga presyong inanunsyo ng Immich noong July 2024. Ngunit walang ina-unlock ang pagbili nito. Gumagana ang Immich nang walang restriction kahit hindi ka kailanman magbayad. Libre ang core ng PhotoPrism, na may optional na bayad na extras.

Ang backup ang nagtatakda kung mapapanatili mo ito

Ang photo server na walang backup ay isang disk failure na lang ang layo sa pagkawala ng lahat ng file ng isang pamilya. Kailangang may dalawang backup ang parehong app: ang database at ang mga file.

Para sa Immich, i-dump ang database mula sa Postgres container at kopyahin ang upload location.

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

Pagkatapos, i-back up ang UPLOAD_LOCATION. Ang mga folder na naglalaman ng data na hindi maaaring palitan ay upload, library at profile. Maaaring muling buuin ang mga folder na thumbs at encoded-video, ngunit aabutin ito ng ilang oras na CPU time. Walang nare-restore ang database dump lamang dahil metadata lang ang nilalaman nito.

Para sa PhotoPrism, may sarili itong command para sa index.

docker compose exec photoprism photoprism backup -i -f

Isinusulat nito ang SQL dump sa ilalim ng storage/backup/. Pagkatapos, kopyahin ang originals folder at ang storage folder. Dahil nagsusulat din ang PhotoPrism ng mga sidecar YAML file na naglalarawan sa bawat larawan, maaaring buuing muli ang nawalang index mula sa mga file lamang. Mahalagang bentahe ito para sa archive na balak mong panatilihin sa loob ng maraming dekada.

Anuman ang piliin mo, regular na ipadala ang mga backup na iyon palabas ng server gamit ang encrypted at deduplicated na restic backups sa remote storage. Hindi backup ang kopyang nasa parehong disk ng library. Ipa-alert ang job kapag nabigo ito, dahil ang backup na tahimik na tumigil noong March ay eksaktong kamukha ng backup na tumakbo kagabi hanggang sa araw na kailanganin mo ito, at ang self-hosted na ntfy server ang magpapadala ng abiso ng pagkabigong iyon sa phone mo sa parehong gabi.

Alin ang dapat mong patakbuhin

Patakbuhin ang Immich kung nasa mga phone ang iyong mga larawan, kung kailangang mag-back up ng camera roll ang higit sa isang tao, at kung mabibigyan mo ang server ng 6 GB RAM o higit pa. Ito ang pinakamalapit sa Google Photos na maaari mong i-host mismo, at ang mobile experience ang pangunahing pakinabang nito. Sinasaklaw nang detalyado ng aming sunod-sunod na gabay sa pag-install ng Immich ang memory kills at mga problema sa upgrade.

Patakbuhin ang PhotoPrism kung mayroon ka nang photo archive sa disk, kung mahalaga sa iyo ang mga mapa at metadata pati ang pagpapanatili ng sarili mong folder structure, o kung may 4 GB RAM ang iyong VPS at mas gusto mo ang library na gumagana kaysa sa library na palaging gumagamit ng swap. Mas mahusay itong tool para sa curation at mas magaan ito sa maliit na hardware.

Makatuwiran ding patakbuhin ang dalawa. Pang-araw-araw na pag-import mula sa phone ang hahawakan ng Immich. Minsan sa isang taon, ayusin mo ang mga larawang itatago sa iyong archive at hayaan ang PhotoPrism na i-index ang mga iyon. Hindi sila nagkakasalungatan dahil nagbabasa ng mga folder ang PhotoPrism, habang sariling data nito ang pinamamahalaan ng Immich.

FAQ

Maaari bang gumamit ang PhotoPrism at Immich ng iisang photo folder?

Hindi ito ligtas sa parehong direksiyon. Ini-index ng PhotoPrism ang isang originals folder at may mga feature itong sumusulat dito maliban kung tumatakbo ito sa read-only mode, samantalang inaasahan ng Immich na ito ang mamamahala sa laman ng upload location nito. Maaari mong ituro ang PhotoPrism sa read-only na kopya ng library folder ng Immich upang ma-browse ito, pero huwag hayaang parehong app ang mamahala sa parehong mga file, dahil maaaring ilipat o palitan ng pangalan ng storage template ng Immich ang mga asset habang ini-index ng PhotoPrism ang mga ito.

Sapat na ba ang stability ng Immich para ito lamang ang maglaman ng kopya ng aking mga larawan?

Hindi dapat maging tanging kopya ng anuman ang anumang self-hosted app. Gumagamit na ngayon ang Immich ng semantic versioning at sinasabing ang breaking changes ay limitado sa major releases, kaya i-pin ang IMMICH_VERSION sa isang major version tag gaya ng v3, basahin ang release notes, at saka mag-upgrade gamit ang docker compose pull && docker compose up -d. Hindi suportado ang pag-downgrade, kahit sa loob ng parehong minor version, kaya gumawa ng database dump bago ang bawat upgrade. Panatilihing naka-backup ang mga orihinal na file sa labas ng server upang manatiling maliit ang panganib.

Bakit patuloy na nagre-restart ang machine learning container ng Immich?

Karaniwan itong pinapatay dahil gumagamit ito ng sobrang memory. Patakbuhin ang docker compose ps --all, dahil hindi makikita ang tumigil na container kapag wala ang flag na iyon, at hanapin kung lumalabas ang machine learning service na may code 137. Ibig sabihin ng code na iyon ay pinatay ang proseso gamit ang signal 9; karaniwang sanhi ang out of memory killer ng kernel, pero hindi ito ang tanging posibilidad, kaya kumpirmahin ito gamit ang sudo dmesg | grep -i 'out of memory'. Magdagdag ng swap, o ganap na i-disable ang machine learning sa isang machine na may 4 GB. Hindi nito tina-throttle ang container kapag nilagyan ito ng memory limit: papatayin pa rin ito kapag umabot sa limit, pero hindi na nito mauubusan ng memory ang iba pang bahagi ng server. Hindi gagana ang smart search at face recognition kapag walang machine learning, pero maayos na tatakbo ang iba pang bahagi ng Immich.

Kailangan ba ng PhotoPrism ng MariaDB, o sapat na ang SQLite?

Gumagana ang SQLite at sapat ito para sa personal na library, pero nililimitahan ng PhotoPrism sa four workers ang sarili nito kapag ito ang ginagamit. Inirerekomenda ng documentation ang paglipat sa MariaDB dahil mas mahusay itong humawak ng mataas na concurrency. Kasama na sa compose file na inilalabas ng project ang MariaDB, kaya ang inirerekomendang setup ang default din.

Gaano karaming disk space ang dapat kong ilaan na higit sa laki ng aking library?

Magdagdag ng 10 hanggang 20 percent sa laki ng iyong mga original, anuman ang app. Saklaw nito ang mga nabuong thumbnail at mga transcoded video preview. Kung 200 GB ang collection, humigit-kumulang 220 hanggang 240 GB ang kailangan para sa library lamang, bukod pa sa espasyo para sa database at paglaki nito. Kung nagpapanatili ka rin ng kumpletong lokal na backup copy sa parehong volume, kailangan ng mga original at ng kopyang iyon ng hindi bababa sa 400 GB bago isama ang iba pang gamit, kaya maglaan ng humigit-kumulang 450 GB o ilagay ang kopya sa hiwalay na volume.

Nakatulong ba ang artikulong ito?