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.
Hati sa pilosopiya, at kung bakit nito pinagpapasyahan ang lahat
Ang Immich ang namamahala sa mga file. Itinuturo mo ito sa isang upload location, ipinapadala roon ng phone app o web uploader ang mga original, at iniimbak ng Immich ang mga ito sa sarili nitong path gamit ang sarili nitong pagpapangalan. Nasa database ang pangunahing tala tungkol sa mga album, mukha at paghahanap. Dahil sa disenyong ito, mahusay ang karanasan sa phone, dahil palaging alam ng server ang kumpletong estado ng bawat asset.
Binabasa ng PhotoPrism ang mga file. Nagmo-mount ka ng originals folder na dati mo nang kinokontrol, at gumagawa ang PhotoPrism ng index para rito. Nananatiling iyo ang directory tree. Kung aalisin mo ang PhotoPrism bukas, mananatili ang mga larawan sa parehong folder at may parehong pangalan, at magsusulat ang PhotoPrism ng mga sidecar YAML file sa tabi ng mga ito upang ilarawan ang mga natutuhan nito.
Ipinapaliwanag ng nag-iisang pagkakaibang ito ang karamihan sa iba pang pagkakaiba. Malakas ang suporta ng Immich sa mobile dahil kontrolado nito ang ingestion. Mahusay ang PhotoPrism sa pag-aayos ng library dahil hindi nito binabago ang dati mong structure. Mas angkop ang Immich para sa pamilyang nasa mga phone ang mga larawan. Mas angkop ang PhotoPrism para sa archive na nasa isang disk.
Gana sa hardware: mas mataas ang hinihingi ng Immich
Malaki ang agwat ng mga nakadokumentong minimum na memory, at sa maliit na VPS, ito ang karaniwang nagpapasya.
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
}
]Itinatala ng Immich ang 6 GB ng RAM bilang minimum at 8 GB bilang inirerekomenda. May tala rin na maaari lamang patakbuhin ng isang 4 GB na machine ang Immich kapag naka-off ang machine learning. Itinatala naman ng PhotoPrism ang 3 GB ng physical memory at dalawang CPU core. Sinasabi rin nito na dapat tumugma ang dami ng RAM sa bilang ng mga core.
Totoo ang agwat. Nagmumula ito sa machine learning container. Pinapatakbo ng Immich ang mga model nito sa hiwalay na immich-machine-learning service. Nilo-load nito sa memory ang CLIP (contrastive language image pretraining) at mga model para sa face detection. Sa 2 GB na machine, pinapatay ng kernel ang container na ito. Makikita mo itong lumabas na may code 137. Ito ang karaniwang anyo ng out of memory kill mula sa Docker. Mas maliit ang mga TensorFlow model ng PhotoPrism. Sa halip na tuluyang mabigo, bumababa ang functionality nito. Sa mga machine na may 1 GB o mas kaunti, dini-disable nito ang RAW conversion at TensorFlow sa halip na mag-crash.
Parehong nangangailangan ng swap ang dalawang project. Malinaw na sinasabi sa documentation ng PhotoPrism na kailangan nito ng hindi bababa sa 4 GB na swap sa server. Idagdag ito bago mo i-install ang alinman sa dalawang app.
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 -hDapat mag-print ngayon ang free -h ng isang Swap: line na nagpapakita ng 4.0Gi. Kung mag-print ito ng 0B, nabigo ang swapon. Karaniwan itong nangyayari dahil hindi sinusuportahan ng filesystem ang fallocate, kaya sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 ang fallback. Mahalaga rin dito ang mga memory ceiling ng container. Ang pagtatakda ng memory limits sa Docker Compose ang paraan para hindi maagaw ng isang resource-hungry service ang buong machine.
May isa pang requirement na madalas nakaliligtaan. Dapat nasa isang normal na Unix filesystem ang Postgres database ng Immich, na may aktuwal na ownership at permissions, at nasa local storage. Hindi ito dapat nasa network share. Ganito rin ang sinasabi ng PhotoPrism tungkol sa mga database file nito. Hindi ligtas patakbuhin ang alinmang app kung nasa mounted object store ang database nito.
Paano i-install ang bawat isa
Ang parehong installation ay binubuo ng vendor compose file at isang command. I-set up muna ang Docker Engine at Compose plugin, gaya ng ipinaliwanag sa aming gabay sa Docker Compose sa isang VPS.
Inilalabas ng Immich ang compose file nito at isang example environment file 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.envI-edit ang .env bago magsimula. Dito ilalagay ang iyong mga original sa UPLOAD_LOCATION, at dapat baguhin ang DB_PASSWORD mula sa default gamit lamang ang mga character na A-Za-z0-9, dahil sinisira ng mga special character ang connection string. Pagkatapos, simulan ito.
docker compose up -d
docker compose psTumatanggap ang web interface ng mga request sa port 2283. Ang unang account na mairehistro sa page na iyon ang magiging administrator, kaya buksan ito at mag-register agad sa halip na mag-iwan ng instance na bukas sa internet.
May isang compose file ang PhotoPrism na kasama na ang MariaDB.
sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yamlBuksan ang compose.yaml at palitan ang PHOTOPRISM_ADMIN_PASSWORD bago ang unang pagsisimula. Malinaw ang dokumentasyon tungkol dito: magsisimula ang app gamit ang initial password na nasa file, ang minimum na haba ay 8 characters, at hindi kailanman 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 photoprismTumatanggap ang PhotoPrism ng mga request 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, gamit ang kaparehong setup tulad ng self-hosted Nextcloud na may Docker, TLS at backups.
Alin ang may mas mahusay na phone app
Dito pinakamalaki ang pagkakaiba ng dalawang project, at ito ang dahilan kung bakit karamihan ay nauuwi sa Immich.
Naglalabas ang Immich ng mga official app para sa Android at iOS. Nagba-backup ang mga ito ng camera roll sa background, kaya naililipat ang mga bagong larawan mula sa phone nang walang kailangang buksan. Nangangailangan ang app ng HTTPS endpoint, kaya hindi optional ang reverse proxy kung gagamitin ito sa labas ng bahay.
Walang official native app ang PhotoPrism. Naglalabas ito ng progressive web app na maaari mong idagdag sa home screen mula sa browser. Idinodokumento rin nito ang WebDAV (web distributed authoring and versioning) bilang paraan para mag-sync mula sa phone. Inirerekomenda ng project ang third-party app na PhotoSync para rito, na itinuturo sa /import/ o /originals/ directory sa WebDAV. Gumagana ito, pero isang bayad na third-party app ang gumagawa ng task na ginagawa ng Immich sa sarili nitong client.
Kung kailangan ang automatic phone backup para sa ilang miyembro ng pamilya, malinaw ang desisyon. Immich.
Ano talaga ang naibibigay sa iyo ng machine learning
Gumagamit ang Immich ng CLIP para sa semantic search sa iyong library. Kaya nitong maghanap ng mga query tulad ng “pulang bisikleta sa niyebe” at makahanap ng mga larawang hindi kailanman nilagyan ng tag. May face detection at clustering din ito, pati duplicate detection. Ang pag-index ng malaking import gamit ang CPU ay maaaring tumagal nang ilang oras sa background. Normal ito at hindi nangangailangan ng GPU (graphics processing unit).
Inuuri ng PhotoPrism ang mga larawan gamit ang TensorFlow at nilalagyan ang mga ito ng mga label. Nakakakita rin ito ng mga mukha at pinagbubukod-bukod ang mga ito ayon sa tao. Binabasa nito ang location metadata para makagawa ng places map. Ang map ang feature na dahilan kung bakit patuloy itong ginagamit ng mga tao. Ang library na naka-index ayon sa kung saan naganap ang mga kuha ay ibang paraan talaga ng pag-browse sa dalawampung taon ng mga larawan. Kasama ang face recognition sa libreng Community edition. Nagdaragdag ang bayad na Essentials at Plus memberships ng mga feature gaya ng mas maraming map layer, mas maraming user role at user management interface. Nagsisimula ang presyo sa ilang euro bawat buwan noong July 2026.
Ganap na libre ang Immich at wala itong paid tier. Libre ang core ng PhotoPrism, na may mga opsyonal na bayad na karagdagang feature.
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.gzPagkatapos, 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 -fIsinusulat 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 palabas ng server gamit ang naka-encrypt at deduplicated na restic backup sa remote storage. Ang backup na nasa parehong disk ng library ay hindi backup.
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. Nagbabasa ang PhotoPrism ng originals folder at nagsusulat ito ng mga sidecar YAML file katabi ng iyong mga image, samantalang inaasahan ng Immich na ito ang mamamahala sa laman ng upload location nito. Maaaring ituro ang PhotoPrism sa read-only na kopya ng library folder ng Immich para ma-browse ito, ngunit huwag hayaang pamahalaan ng dalawang app ang parehong file, dahil maaaring ilipat o palitan ng pangalan ng storage template ng Immich ang mga asset habang ini-index ng PhotoPrism.
Sapat na ba ang stability ng Immich para ito lang ang maglaman ng kopya ng aking mga larawan?
Hindi dapat maging tanging kopya ng anumang data ang isang self-hosted app. Madalas maglabas ang Immich ng breaking changes, at maaaring hindi makapagsimula ang database dahil sa maling docker compose pull. I-pin ang iyong version at basahin ang release notes bago mag-upgrade. Panatilihing naka-back up 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?
Pinapatay ito dahil gumagamit ito ng sobrang memory. Patakbuhin ang docker compose ps at hanapin kung lumalabas ang machine learning service na may code 137. Ibig sabihin nito ay pinatay ito ng kernel out of memory killer. Magdagdag ng swap, magtakda ng memory limit sa container upang ma-throttle ito sa halip na patayin, o ganap na i-disable ang machine learning sa isang 4 GB machine. Hindi gagana ang search kung wala ito, ngunit maayos na tatakbo ang natitirang bahagi ng Immich.
Kailangan ba ng PhotoPrism ang MariaDB, o sapat na ang SQLite?
Gumagana ang SQLite at sapat ito para sa personal na library, ngunit nililimitahan ng PhotoPrism ang sarili nito sa apat na worker kapag ito ang ginagamit. Inirerekomenda ng dokumentasyon ang paglipat sa MariaDB dahil mas mahusay nitong hinahawakan ang mataas na concurrency. Kasama na sa compose file na inilalabas ng project ang MariaDB, kaya ang inirerekomendang paraan ang default na rin.
Gaano karaming disk space ang dapat kong ilaan bukod sa laki ng aking library?
Maglaan ng karagdagang 10 hanggang 20 porsiyento batay sa laki ng iyong mga original para sa alinmang app. Sapat ito para sa mga nabuong thumbnail at mga na-transcode na video preview. Ang koleksiyong 200 GB ay nangangailangan ng humigit-kumulang 300 GB na volume kapag naglaan ka ng espasyo para sa database, lokal na backup copy at paglaki ng data.