PhotoPrism mi Immich mi? Hangi fotoğraf sunucusu?
PhotoPrism ve Immich karşılaştırması: gerçek RAM gereksinimleri, telefon uygulamaları, haritalar ve VPS üzerinde gereken kesin yedekleme komutları açıklanıyor.
PhotoPrism ve Immich: kısa yanıt
PhotoPrism ve Immich arasında seçim yapmak, aynı ürünün iki sürümü arasında seçim yapmak değildir. Bu iki ürün farklı ihtiyaçlara hizmet eder. Immich, Google Photos'un yerini alır: Bir telefon uygulaması kamera rulonuzu otomatik olarak yedekler. Elde edilen zaman akışı, telefon galerisini kullanmayı bırakmak isteyen herkes için tanıdık görünür. PhotoPrism, mevcut bir fotoğraf kitaplığını düzenler: Diskteki dosya klasörlerini dizinler, meta verilerini okur, fotoğrafları harita üzerinde gösterir ve dosyaları bulundukları yerde bırakır.
Sorun "Telefonum dolu ve Google Photos'u kullanmak istemiyorum" ise Immich seçilmelidir. Sorun "Bir sürücüde 400 GB fotoğrafım var ve içlerinde hiçbir şey bulamıyorum" ise PhotoPrism seçilmelidir. Her ikisi de açık kaynaklıdır. Her ikisi de normal bir VPS üzerinde Docker container olarak çalışır. Her ikisi de herhangi bir veriyi üçüncü tarafa göndermeden kitaplığınızı dizinler ve aramanızı sağlar.
Felsefe ayrımı ve her şeyi neden belirlediği
Immich dosyaların sahibi olur. Immich'i bir yükleme konumuna yönlendirilir; telefon uygulaması veya web yükleyicisi özgün dosyaları buraya gönderir ve Immich bunları kendi yolu altında, kendi adlandırma düzeniyle saklar. Veritabanı albümler, yüzler ve arama hakkındaki doğruluk kaynağıdır. Telefon deneyiminin iyi olmasını sağlayan tasarım budur; çünkü sunucu her varlığın tam durumunu her zaman bilir.
PhotoPrism dosyaları okur. Zaten denetiminizde olan bir originals klasörü bağlanır ve PhotoPrism bunun üzerinde bir dizin oluşturur. Dizin ağacı size ait kalır. PhotoPrism'i yarın kaldırırsanız fotoğraflar aynı klasörlerde, aynı adlarla durur. PhotoPrism, öğrendiği bilgileri açıklayan YAML sidecar dosyalarını bunların yanına yazmış olur.
Bu tek fark, diğer konuların çoğunu açıklar. Immich, veri alımını denetlediği için güçlü mobil desteğe sahiptir. PhotoPrism, mevcut yapınızla çakışmadığı için güçlü kitaplık düzenleme özelliklerine sahiptir. Fotoğrafları telefonlarda bulunan bir aile için Immich daha uygun çözümdür. Diske kaydedilmiş bir arşiv için PhotoPrism daha uygun çözümdür.
Donanım gereksinimi: Immich daha fazlasını ister
Belgelenen bellek gereksinimleri oldukça farklıdır. Küçük bir VPS üzerinde bu fark genellikle belirleyici olur.
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, minimum 6 GB RAM ve önerilen 8 GB RAM gerektirir. Ayrıca, 4 GB belleğe sahip bir makinede yalnızca makine öğrenmesi devre dışı bırakılırsa çalışabileceğini belirtir. PhotoPrism ise 3 GB fiziksel bellek ve iki CPU çekirdeği gerektirir. RAM miktarının çekirdek sayısıyla eşleşmesi gerektiğini belirtir.
Bu fark gerçektir ve makine öğrenmesi container'ından kaynaklanır. Immich, modellerini ayrı bir immich-machine-learning service içinde çalıştırır. Bu service, CLIP (contrastive language image pretraining) ve yüz algılama modellerini belleğe yükler. 2 GB belleğe sahip bir makinede kernel bu container'ı sonlandırır. Docker'da bellek yetersizliği nedeniyle sonlandırma gerçekleştiğinde container çıkış kodu 137 ile sonlanır. PhotoPrism'in TensorFlow modelleri daha küçüktür ve uygulama kapanmak yerine özellikleri devre dışı bırakır. 1 GB veya daha az belleğe sahip makinelerde çökme yerine RAW dönüştürmeyi ve TensorFlow'u devre dışı bırakır.
Her iki proje de swap ister. PhotoPrism belgelerinde server üzerinde en az 4 GB swap alanı açıkça istenir. Bunlardan herhangi birini kurmadan önce swap alanını ekleyin.
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 çıktısında artık 4.0Gi gösteren bir Swap: satırı bulunmalıdır. Çıktı 0B ise swapon başarısız olmuştur. Bunun nedeni genellikle filesystem'ın fallocate özelliğini desteklememesidir. Bu durumda sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 kullanılır. Container bellek sınırları da önemlidir. Docker Compose'ta bellek sınırlarını ayarlamak, tek bir yüksek bellek tüketen service'in tüm makineyi çalışamaz duruma getirmesini önler.
Bir gereksinim daha sorun çıkarabilir. Immich'in Postgres veritabanı, gerçek sahiplik ve izinleri destekleyen normal bir Unix filesystem üzerinde ve local storage'da bulunmalıdır. Veritabanı hiçbir zaman network share üzerinde tutulmamalıdır. PhotoPrism de veritabanı dosyaları için aynı koşulu belirtir. Her iki uygulamanın veritabanını mounted object store üzerinde çalıştırmak güvenli değildir.
Her birinin kurulumu
Her iki kurulum da sağlayıcıya ait bir Compose dosyası ve tek bir komuttan oluşur. Önce Docker Engine ve Compose eklentisi kurulmalıdır. Bu işlem VPS üzerinde Docker Compose kılavuzumuzda açıklanmaktadır.
Immich, her sürümle birlikte Compose dosyasını ve örnek bir ortam dosyasını yayımlar.
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.envBaşlamadan önce .env dosyasını düzenleyin. UPLOAD_LOCATION özgün dosyalarınızın tutulacağı konumdur. DB_PASSWORD değeri, varsayılan değer yerine yalnızca A-Za-z0-9 karakterleri kullanılarak değiştirilmelidir. Özel karakterler bağlantı dizesini bozar. Ardından uygulamayı başlatın.
docker compose up -d
docker compose psWeb arayüzü 2283 portundan yanıt verir. Bu sayfa üzerinden kaydedilen ilk hesap yönetici olur. Bu nedenle arayüze erişip hemen kayıt olun. Çalışan örneği internete açık bırakmayın.
PhotoPrism, MariaDB'yi zaten içeren tek bir Compose dosyası yayımlar.
sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yamlİlk başlatmadan önce compose.yaml dosyasını açıp PHOTOPRISM_ADMIN_PASSWORD değerini değiştirin. Belgelerde bu açıkça belirtilir: uygulama, bu dosyada bulunan başlangıç parolasıyla çalışır. Minimum uzunluk 8 karakterdir. Varsayılan değer genel erişime açık bir sunucuda kesinlikle kullanılmamalıdır. Aynı anda originals volume değerini fotoğraflarınızın bulunduğu klasöre ayarlayın.
docker compose up -d
docker compose logs -f photoprismPhotoPrism, admin kullanıcısıyla 2342 portundan yanıt verir. Her iki uygulama da doğrudan dışarıya açılmamalıdır. Önlerine TLS (transport layer security) kullanan bir reverse proxy yerleştirin. Docker, TLS ve yedeklemelerle kendi barındırdığınız Nextcloud kurulumu için kullanılan yapı da aynıdır.
Daha iyi telefon uygulaması hangisinde
İki proje arasındaki en büyük fark burada görülür. Çoğu kişinin Immich kullanmaya başlamasının nedeni de budur.
Immich, Android ve iOS için resmi uygulamalar sunar. Bu uygulamalar kamera rulosunu arka planda yedekler. Böylece yeni fotoğraflar herhangi bir uygulama açılmadan telefondan aktarılır. Uygulama bir HTTPS uç noktası gerektirir. Bu nedenle ev dışından kullanılacaksa reverse proxy zorunludur.
PhotoPrism'in resmi bir yerel uygulaması yoktur. Tarayıcıdan ana ekrana eklenen bir progressive web app sunar. Telefonda eşitleme yöntemi olarak WebDAV'ı (web dağıtımlı yazma ve sürüm oluşturma) belgeler. Proje bunun için PhotoSync adlı üçüncü taraf bir uygulama kullanılmasını önerir. Bu uygulama /import/ veya /originals/ dizinine WebDAV üzerinden bağlanacak şekilde yapılandırılır. Çalışır. Ancak bu işlem, Immich'in kendi istemcisinde gerçekleştirdiği bir işi ücretli bir üçüncü taraf uygulamaya bırakır.
Birden fazla aile üyesi için otomatik telefon yedeklemesi gerekiyorsa seçim bellidir. Immich.
Makine öğrenimi gerçekte ne sağlar
Immich, CLIP kullanarak kitaplığınızda anlamsal arama yapar. Bu nedenle, "karda kırmızı bisiklet" gibi bir sorguyla daha önce kimsenin etiketlemediği fotoğraflar bulunabilir. Ayrıca yüz algılama ve kümeleme ile yinelenen fotoğraf algılama özellikleri de sunar. Büyük bir içe aktarma işleminin CPU üzerinde dizinlenmesi arka planda saatler sürebilir. Bu normaldir ve GPU (grafik işlem birimi) gerektirmez.
PhotoPrism, görüntüleri TensorFlow ile etiketlere göre sınıflandırır, yüzleri algılar ve bunları kişiler altında gruplandırır. Ayrıca konum meta verilerini okuyarak bir yerler haritası oluşturur. Kullanıcıların hizmette kalmasını sağlayan özellik haritadır. Fotoğraf kitaplığını fotoğrafların çekildiği konuma göre dizinlemek, yirmi yıllık fotoğraflara göz atmak için gerçekten farklı bir yöntemdir. Yüz tanıma, ücretsiz Community sürümüne dahildir. Ücretli Essentials ve Plus üyelikleri, daha ayrıntılı harita katmanları, daha fazla kullanıcı rolü ve kullanıcı yönetimi arayüzü gibi ek özellikler sunar. Temmuz 2026 itibarıyla ücretlendirme ayda birkaç eurodan başlamaktadır.
Immich, ücretli katman olmadan tamamen ücretsizdir. PhotoPrism'in temel işlevleri ücretsizdir; isteğe bağlı ücretli ek özellikler sunulur.
Yedekler verilerin korunup korunmayacağını belirler
Yedeklemesi olmayan bir fotoğraf sunucusunda tek bir disk arızası, bir ailenin sahip olduğu her şeyin kaybedilmesine yol açabilir. Her iki uygulama için de iki yedeğe ihtiyaç vardır: veritabanı ve dosyalar.
Immich için veritabanını Postgres container'ından dışa aktarın ve yükleme konumunu kopyalayın.
docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gzArdından UPLOAD_LOCATION yedeğini alın. Değiştirilmesi mümkün olmayan verileri içeren klasörler upload, library ve profile konumlarıdır. thumbs ve encoded-video klasörleri, saatler süren CPU süresi karşılığında yeniden oluşturulabilir. Veritabanı dökümü tek başına hiçbir şeyi geri yüklemez; çünkü yalnızca meta verileri içerir.
PhotoPrism için indeksin kendine ait bir komutu vardır.
docker compose exec photoprism photoprism backup -i -fBu komut, storage/backup/ altında bir SQL dökümü oluşturur. Ardından originals klasörünü ve storage klasörünü kopyalayın. PhotoPrism her fotoğrafı açıklayan yan YAML dosyaları da yazdığı için, kaybolan indeks yalnızca dosyalardan yeniden oluşturulabilir. Bu, onlarca yıl saklanması planlanan bir arşiv için önemli bir avantajdır.
Hangisini seçerseniz seçin, bu yedekleri uzak depolamaya şifreli ve tekilleştirilmiş restic yedekleri ile belirli bir zamanlamaya göre sunucu dışına gönderin. Kitaplıkla aynı diskte bulunan bir yedek, yedek değildir.
Hangisini çalıştırmalısınız
Fotoğraflar telefonlarda tutuluyorsa, kamera rulosunu birden fazla kişinin yedeklemesi gerekiyorsa ve sunucuya 6 GB veya daha fazla RAM ayırabiliyorsanız Immich çalıştırılmalıdır. Kendi sunucunuzda barındırabileceğiniz Google Photos'a en yakın seçenektir ve asıl avantajı mobil deneyimidir. adım adım Immich kurulum kılavuzumuz bellek nedeniyle sonlandırma sorunlarını ve yükseltme tuzaklarını ayrıntılı olarak ele alır.
Diskte zaten bir fotoğraf arşivi bulunuyorsa, haritalara ve metadata'ya önem veriyorsanız ve kendi klasör yapınızı korumak istiyorsanız veya VPS'nizde 4 GB RAM varsa PhotoPrism çalıştırılmalıdır. Çalışan bir kütüphaneyi swap kullanan bir kütüphaneye tercih ediyorsanız PhotoPrism daha iyi bir düzenleme aracıdır ve düşük donanım kaynaklarını daha az zorlar.
İkisini birlikte çalıştırmak da mantıklıdır. Immich günlük telefon aktarımını yönetir. Yılda bir kez saklanacak fotoğrafları arşivinize ayırır ve PhotoPrism'in bunları indekslemesini sağlarsınız. Çakışma yaşanmaz. PhotoPrism klasörleri okurken Immich kendi depolama alanının sahibi olur.
FAQ
PhotoPrism ve Immich aynı fotoğraf klasörünü paylaşabilir mi?
Her iki yönde de güvenli değildir. PhotoPrism bir originals klasörünü okur ve görüntülerinizin yanına YAML sidecar dosyaları yazar. Immich ise yükleme konumunun içeriğini kendisinin yönetmesini bekler. PhotoPrism'i Immich'in library klasörünün salt okunur bir kopyasına yönlendirerek bu klasöre göz atabilirsiniz. Ancak her iki uygulamanın aynı dosyaları yönetmesine izin vermeyin. Bunun nedeni, Immich'in depolama şablonunun dizin oluşturma sırasında PhotoPrism'in kullandığı varlıkları taşıyabilmesi veya yeniden adlandırabilmesidir.
Immich, fotoğraflarımın tek kopyasını saklayacak kadar kararlı mı?
Kendi sunucunuzda barındırdığınız hiçbir uygulama herhangi bir verinin tek kopyasını tutmamalıdır. Immich sık sık geriye dönük uyumsuz değişiklikler içeren sürümler yayımlar. Dikkatsiz bir docker compose pull veritabanının başlatılamamasına neden olabilir. Bu nedenle sürümünüzü sabitleyin ve yükseltmeden önce sürüm notlarını okuyun. Özgün dosyaları sunucu dışında yedekli tutun. Böylece risk düşük kalır.
Immich machine learning container neden sürekli yeniden başlatılıyor?
Fazla bellek kullandığı için sonlandırılıyor. docker compose ps komutunu çalıştırın ve machine learning hizmetinin 137 koduyla çıktığını kontrol edin. Bu kod, kernel out of memory killer tarafından sonlandırıldığını gösterir. Swap ekleyin veya container için bellek sınırı belirleyin. Böylece container sonlandırılmak yerine kısıtlanır. Alternatif olarak 4 GB belleğe sahip bir makinede machine learning özelliğini tamamen devre dışı bırakın. Bu özellik olmadan arama çalışmaz. Immich'in geri kalanı normal şekilde çalışır.
PhotoPrism için MariaDB gerekli mi, yoksa SQLite yeterli olur mu?
SQLite çalışır ve kişisel bir kitaplık için yeterlidir. Ancak PhotoPrism, SQLite kullanıldığında kendisini dört worker ile sınırlar. Belgelerde, yüksek eşzamanlılığı daha iyi yönettiği için MariaDB'ye geçilmesi önerilir. Projenin yayımladığı compose dosyası zaten MariaDB içerir. Bu nedenle önerilen yol aynı zamanda varsayılan yoldur.
Kitaplığımın boyutuna ek olarak ne kadar disk alanı ayırmalıyım?
Her iki uygulama için özgün dosyalarınızın boyutuna ek olarak 10 ile 20 yüzde ayırın. Bu alan, oluşturulan küçük resimleri ve dönüştürülmüş video önizlemelerini kapsar. 200 GB boyutundaki bir koleksiyon için veritabanına, yerel yedek kopyaya ve büyümeye alan bırakıldığında yaklaşık 300 GB'lık bir volume gerekir.