PhotoPrism vs Immich: Server Foto Mana Lebih Sesuai?
Bandingkan PhotoPrism dan Immich: keperluan RAM sebenar, aplikasi telefon, peta, serta arahan sandaran tepat untuk setiap server pada VPS.
PhotoPrism berbanding Immich: jawapan ringkas
PhotoPrism berbanding Immich ialah pilihan antara dua fungsi yang berbeza, bukan dua versi produk yang sama. Immich menggantikan Google Photos: aplikasi telefon menyandarkan gulungan kamera anda secara automatik, dan garis masa yang dipaparkan kelihatan biasa kepada sesiapa yang beralih daripada galeri telefon. PhotoPrism menyusun pustaka foto yang sudah anda miliki: ia mengindeks folder fail pada cakera, membaca metadata fail tersebut, meletakkannya pada peta, dan mengekalkan fail tepat di lokasi asalnya.
Pilih Immich jika masalahnya ialah "telefon saya penuh dan saya mahu berhenti menggunakan Google Photos". Pilih PhotoPrism jika masalahnya ialah "saya mempunyai 400 GB foto pada pemacu dan tidak dapat mencari apa-apa di dalamnya". Kedua-duanya ialah perisian sumber terbuka, kedua-duanya berjalan sebagai bekas Docker pada VPS biasa, dan kedua-duanya mengindeks serta mencari pustaka anda tanpa menghantar apa-apa kepada pihak ketiga.
Perbezaan falsafah, dan sebabnya menentukan segala-galanya
Immich mengurus fail. Anda menetapkan lokasi muat naik, kemudian aplikasi telefon atau pemuat naik web menghantar fail asal ke sana. Immich menyimpannya di bawah laluannya sendiri dengan penamaan sendiri. Pangkalan data menyimpan maklumat sebenar tentang album, wajah dan carian. Reka bentuk ini menjadikan pengalaman telefon lebih baik kerana pelayan sentiasa mengetahui keadaan lengkap setiap aset.
PhotoPrism membaca fail. Anda melekapkan folder originals yang telah anda kawal, kemudian PhotoPrism membina indeks untuk folder itu. Struktur direktori kekal milik anda. Jika anda mengalih keluar PhotoPrism esok, foto masih berada dalam folder yang sama dengan nama yang sama. PhotoPrism juga akan menulis fail YAML sidecar di sebelah foto tersebut untuk menerangkan maklumat yang dipelajarinya.
Perbezaan tunggal ini menjelaskan sebahagian besar perbezaan yang lain. Immich mempunyai sokongan mudah alih yang kukuh kerana ia mengawal proses pengingesan. PhotoPrism mempunyai pengurusan pustaka yang kukuh kerana ia tidak mengganggu struktur sedia ada anda. Immich ialah pilihan yang lebih baik untuk keluarga yang menyimpan foto pada telefon. PhotoPrism ialah pilihan yang lebih baik untuk arkib yang disimpan pada cakera.
Perkakasan: Immich memerlukan lebih banyak sumber
Keperluan minimum memori yang didokumenkan berbeza jauh, dan pada VPS kecil, faktor ini biasanya menjadi penentu.
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 mendokumenkan 6 GB RAM sebagai minimum dan 8 GB sebagai disyorkan. Immich turut menyatakan bahawa mesin 4 GB hanya boleh menjalankannya jika pembelajaran mesin dimatikan. PhotoPrism mendokumenkan 3 GB memori fizikal dan dua teras CPU. PhotoPrism juga menyatakan bahawa jumlah RAM hendaklah sepadan dengan bilangan teras.
Perbezaan ini nyata dan berpunca daripada container pembelajaran mesin. Immich menjalankan modelnya dalam perkhidmatan immich-machine-learning berasingan. Perkhidmatan ini memuatkan model CLIP (contrastive language image pretraining) dan pengesanan wajah ke dalam memori. Pada mesin 2 GB, kernel menamatkan container tersebut. Anda akan melihat container itu keluar dengan kod 137, yang menunjukkan pembunuhan akibat kehabisan memori daripada perspektif Docker. Model TensorFlow PhotoPrism lebih kecil dan aplikasi itu merendahkan fungsinya tanpa terhenti. Pada mesin dengan 1 GB atau kurang, PhotoPrism mematikan penukaran RAW dan TensorFlow, bukannya terhenti akibat ranap.
Kedua-dua projek memerlukan swap. Dokumentasi PhotoPrism menyatakan dengan jelas bahawa pelayan memerlukan sekurang-kurangnya 4 GB swap. Tambah swap sebelum memasang mana-mana aplikasi tersebut.
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 kini sepatutnya memaparkan baris Swap: yang menunjukkan 4.0Gi. Jika memaparkan 0B, maka swapon gagal, biasanya kerana sistem fail tidak menyokong fallocate, dan sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 digunakan sebagai sandaran. Had memori container juga penting di sini. Menetapkan had memori dalam Docker Compose ialah cara untuk menghalang satu perkhidmatan yang menggunakan banyak sumber daripada menjejaskan keseluruhan mesin.
Satu lagi keperluan sering terlepas pandang. Pangkalan data Postgres Immich mesti berada pada sistem fail Unix biasa dengan pemilikan dan keizinan sebenar, pada storan setempat, dan tidak boleh berada pada perkongsian rangkaian. PhotoPrism menyatakan perkara yang sama untuk fail pangkalan datanya. Kedua-dua aplikasi tidak selamat dijalankan jika pangkalan datanya berada pada storan objek yang dipasang.
Cara memasang setiap aplikasi
Kedua-dua pemasangan menggunakan fail compose daripada vendor dan satu perintah. Sediakan Docker Engine dan pemalam Compose terlebih dahulu, seperti yang diterangkan dalam panduan kami tentang Docker Compose pada VPS.
Immich menerbitkan fail compose dan fail persekitaran contoh bersama setiap keluaran.
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.envEdit .env sebelum memulakan apa-apa. UPLOAD_LOCATION ialah lokasi fail asal anda akan disimpan, dan DB_PASSWORD mesti ditukar daripada nilai lalai menggunakan aksara A-Za-z0-9 sahaja, kerana aksara khas akan merosakkan rentetan sambungan. Kemudian mulakannya.
docker compose up -d
docker compose psAntara muka web tersedia pada port 2283. Akaun pertama yang didaftarkan melalui halaman itu menjadi pentadbir. Oleh itu, akses halaman tersebut dan daftar dengan segera, bukannya membiarkan tika yang terbuka terus berada di internet.
PhotoPrism menyediakan satu fail compose yang sudah menyertakan MariaDB.
sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yamlBuka compose.yaml dan tukar PHOTOPRISM_ADMIN_PASSWORD sebelum permulaan pertama. Dokumentasi menyatakan perkara ini dengan jelas: aplikasi bermula dengan kata laluan awal yang terdapat dalam fail itu, panjang minimum ialah 8 aksara, dan nilai lalai tidak boleh digunakan pada server awam. Tetapkan volum originals kepada folder yang menyimpan foto anda pada masa yang sama.
docker compose up -d
docker compose logs -f photoprismPhotoPrism tersedia pada port 2342 dengan pengguna admin. Kedua-dua aplikasi tidak sepatutnya didedahkan secara langsung. Letakkan proksi terbalik dengan TLS (keselamatan lapisan pengangkutan) di hadapannya, menggunakan bentuk persediaan yang sama seperti Nextcloud yang dihoskan sendiri dengan Docker, TLS dan sandaran.
Aplikasi telefon yang manakah lebih baik
Di sinilah perbezaan antara kedua-dua projek paling ketara, dan inilah sebab kebanyakan orang akhirnya memilih Immich.
Immich mengeluarkan aplikasi rasmi untuk Android dan iOS. Aplikasi ini membuat sandaran latar belakang untuk gulungan kamera, jadi foto baharu dipindahkan dari telefon tanpa perlu membuka apa-apa aplikasi. Aplikasi ini memerlukan titik akhir HTTPS, jadi proksi terbalik bukan pilihan jika anda merancang untuk menggunakannya di luar rumah.
PhotoPrism tidak mempunyai aplikasi asli rasmi. PhotoPrism menyediakan aplikasi web progresif yang boleh ditambahkan ke skrin utama melalui pelayar, dan mendokumentasikan WebDAV (web distributed authoring and versioning) sebagai kaedah penyegerakan dari telefon. Projek ini mengesyorkan aplikasi pihak ketiga bernama PhotoSync untuk tujuan ini, dengan menetapkannya kepada direktori /import/ atau /originals/ melalui WebDAV. Kaedah ini berfungsi, tetapi tugas tersebut dilakukan oleh aplikasi pihak ketiga berbayar, sedangkan Immich melakukannya dalam kliennya sendiri.
Jika sandaran telefon automatik untuk beberapa ahli keluarga merupakan keperluan, pilihannya jelas: Immich.
Perkara yang sebenarnya diberikan oleh pembelajaran mesin kepada anda
Immich melakukan carian semantik terhadap pustaka anda menggunakan CLIP. Oleh itu, pertanyaan seperti "basikal merah dalam salji" dapat mencari foto yang tidak pernah ditag oleh sesiapa pun. Immich juga melakukan pengesanan dan pengelompokan wajah serta pengesanan pendua. Pengindeksan import yang besar menggunakan CPU berjalan selama beberapa jam di latar belakang. Keadaan ini normal dan tidak memerlukan GPU (unit pemprosesan grafik).
PhotoPrism mengelaskan imej menggunakan TensorFlow kepada label, mengesan wajah dan mengelompokkannya mengikut individu, serta membaca metadata lokasi untuk membina peta tempat. Peta ialah ciri yang menyebabkan pengguna terus menggunakan PhotoPrism. Pustaka yang diindeks berdasarkan lokasi pengambilan foto menyediakan cara yang benar-benar berbeza untuk menyemak imbas foto selama dua puluh tahun. Pengecaman wajah disertakan dalam edisi Community percuma. Keahlian Essentials dan Plus berbayar menambah ciri seperti lapisan peta yang lebih terperinci, lebih banyak peranan pengguna dan antara muka pengurusan pengguna, dengan harga bermula pada beberapa euro sebulan setakat Julai 2026.
Immich adalah percuma sepenuhnya tanpa peringkat berbayar. Teras PhotoPrism adalah percuma, dengan ciri tambahan berbayar secara pilihan.
Sandaran menentukan sama ada koleksi anda kekal
Pelayan foto tanpa sandaran hanya menunggu satu kegagalan cakera untuk kehilangan semua koleksi keluarga. Kedua-dua aplikasi memerlukan dua sandaran: pangkalan data dan fail.
Untuk Immich, buat dump pangkalan data daripada kontena Postgres dan salin lokasi muat naik.
docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gzKemudian sandarkan UPLOAD_LOCATION. Folder yang mengandungi data yang tidak boleh diganti ialah upload, library dan profile. Folder thumbs dan encoded-video boleh dijana semula, tetapi memerlukan masa CPU selama berjam-jam. Dump pangkalan data sahaja tidak memulihkan apa-apa kerana dump itu hanya mengandungi metadata.
Untuk PhotoPrism, indeks mempunyai perintahnya sendiri.
docker compose exec photoprism photoprism backup -i -fPerintah itu menulis dump SQL di bawah storage/backup/. Kemudian salin folder originals dan folder storage. Oleh sebab PhotoPrism turut menulis fail YAML sidecar yang menerangkan setiap foto, indeks yang hilang boleh dibina semula daripada fail sahaja. Ini ialah kelebihan sebenar untuk arkib yang anda rancang untuk simpan selama beberapa dekad.
Apa pun pilihan anda, hantar sandaran tersebut keluar dari pelayan mengikut jadual menggunakan sandaran restic yang disulitkan dan dinyahganda ke storan jauh. Sandaran yang berada pada cakera yang sama dengan pustaka bukanlah sandaran.
Yang manakah patut anda jalankan
Jalankan Immich jika foto anda berada pada telefon, jika lebih daripada seorang perlu membuat sandaran camera roll, dan jika anda boleh menyediakan server dengan RAM 6 GB atau lebih. Immich ialah pilihan yang paling hampir dengan Google Photos yang boleh anda hos sendiri, dan pengalaman mudah alih ialah keutamaan utamanya. Panduan pemasangan Immich langkah demi langkah kami menerangkan isu memory kill dan perangkap naik taraf dengan terperinci.
Jalankan PhotoPrism jika anda sudah mempunyai arkib foto pada disk, jika anda mementingkan peta dan metadata serta mahu mengekalkan struktur folder sendiri, atau jika VPS anda mempunyai RAM 4 GB dan anda lebih mengutamakan library yang berfungsi berbanding library yang kerap menggunakan swap. PhotoPrism ialah alat kurasi yang lebih baik dan lebih ringan untuk perkakasan kecil.
Menjalankan kedua-duanya juga munasabah. Immich mengendalikan pengimportan foto harian daripada telefon, kemudian sekali setahun anda menyusun foto yang mahu disimpan ke dalam arkib dan membenarkan PhotoPrism mengindeksnya. Kedua-duanya tidak bercanggah kerana PhotoPrism membaca folder, manakala Immich mengurus storannya sendiri.
FAQ
Bolehkah PhotoPrism dan Immich berkongsi folder foto yang sama?
Tidak dengan selamat untuk kedua-dua arah. PhotoPrism membaca folder originals dan menulis fail YAML sidecar di sebelah imej anda, manakala Immich menjangka kandungan lokasi muat naiknya diuruskan sendiri. Anda boleh mengarahkan PhotoPrism ke salinan folder library Immich yang hanya boleh dibaca untuk menyemak kandungannya, tetapi jangan benarkan kedua-dua aplikasi mengurus fail yang sama kerana templat storan Immich boleh memindahkan atau menamakan semula aset semasa PhotoPrism mengindeksnya.
Adakah Immich cukup stabil untuk menyimpan satu-satunya salinan foto saya?
Tidak. Aplikasi yang dihoskan sendiri tidak sepatutnya menyimpan satu-satunya salinan apa-apa. Immich kerap mengeluarkan perubahan yang memutuskan keserasian, dan docker compose pull yang cuai boleh menyebabkan pangkalan data gagal dimulakan. Oleh itu, tetapkan versi dan baca nota keluaran sebelum menaik taraf. Simpan fail asal dalam sandaran di luar server supaya risikonya kekal kecil.
Mengapakah container pembelajaran mesin Immich terus dimulakan semula?
Container itu dihentikan kerana menggunakan terlalu banyak memori. Jalankan docker compose ps dan cari perkhidmatan pembelajaran mesin yang keluar dengan kod 137. Kod ini menunjukkan kernel telah menjalankan pembunuh kehabisan memori. Tambah swap, atau tetapkan had memori untuk container supaya penggunaannya diperlahankan dan bukannya dihentikan. Anda juga boleh melumpuhkan pembelajaran mesin sepenuhnya pada mesin dengan 4 GB. Carian tidak akan berfungsi tanpanya, tetapi fungsi Immich yang lain berjalan seperti biasa.
Adakah PhotoPrism memerlukan MariaDB, atau SQLite mencukupi?
SQLite berfungsi dan sesuai untuk pustaka peribadi, tetapi PhotoPrism mengehadkan dirinya kepada empat worker apabila menggunakannya. Dokumentasi mengesyorkan pertukaran kepada MariaDB kerana MariaDB mengendalikan keserentakan tinggi dengan lebih baik. Fail compose yang dikeluarkan oleh projek itu sudah menyertakan MariaDB. Oleh itu, laluan yang disyorkan juga merupakan pilihan lalai.
Berapakah ruang cakera yang perlu saya sediakan melebihi saiz pustaka saya?
Tambahkan 10 hingga 20 peratus kepada saiz fail asal anda untuk mana-mana aplikasi. Ruang ini menampung thumbnail yang dijana dan pratonton video yang ditranskod. Koleksi berukuran 200 GB memerlukan kira-kira volume 300 GB selepas mengambil kira ruang untuk pangkalan data, salinan sandaran setempat dan pertumbuhan data.