SSD Nodes Learn
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-07-24

Immich kurulumu ve güvenli yükseltme rehberi

6 GB RAM kullanımı, port 2283 ve pgvecto.rs veritabanı hataları hakkında teknik detaylar. Immich v3 yükseltme adımları ve bellek sorunları için rehber.

Ne inşa ediyorsunuz

Immich, Google Photos'un gerçek bir alternatifi olan, kendi sunucunuzda barındırabileceğiniz bir fotoğraf ve video yedekleme servisidir. Kamera rulosunu arka planda yükleyen bir mobil uygulaması, zaman çizelgesi, albümler, yüz tanıma ve herhangi bir etiketleme yapmanıza gerek kalmadan "plaj" veya bir kişiyi bulan makine öğrenimi tabanlı arama özelliklerine sahiptir. Servis, sahip olduğunuz bir VPS üzerinde çalışır; orijinal dosyalar diskinizde kalır ve dosyalarınız reklam amaçlı taranmaz.

Kurulum, projenin kendi Docker Compose dosyasındaki dört konteynerden oluşur. Bu işlem yaklaşık on dakika sürer. Bu kılavuzun geri kalanı teknik zorlukların bulunduğu kısımdır: Makine öğrenimi konteyneri küçük sunucularda yüksek bellek tüketir, orijinal dosyalar diski hızla doldurur, mobil uygulama düz HTTP sunucularını kabul etmez ve Immich sık sık bozucu değişiklikler (breaking changes) içerir; bu durum dikkatsiz bir docker compose pull kullanımı nedeniyle veritabanının başlatılamamasına yol açabilir. Bu dört maddeye dikkat edildiğinde Immich oldukça kararlı çalışır. Bu maddeler göz ardı edilirse kurulum süreci çok uzun sürecektir.

Ön Koşullar ve dikkat edilmesi gereken noktalar

  • RAM: resmi belgeler minimum 6 GB ve önerilen 8 GB belirtmektedir; 4 GB RAM ve swap alanını mutlak alt sınır olarak kabul edin. immich-server ve Postgres konteynerları düşük kaynak tüketir. immich-machine-learning konteynerı en çok kaynağı tüketir; arama indekslerini oluşturmak için CLIP ve yüz tanıma modellerini RAM'e yükler ve 2 GB RAM'li bir sistemde kernel tarafından sonlandırılır. 4 GB RAM olsa dahi swap alanı ekleyin.
  • Disk: kapasiteyi tüm kütüphaneniz ve üzerine bir miktar pay ekleyerek belirleyin. Orijinal dosyalar tam olarak kopyalanır, ayrıca Immich küçük resimler ve önizleme görselleri oluşturur (yaklaşık %10–20 ek alan gerektirir). 200 GB boyutundaki bir fotoğraf koleksiyonu için 300 GB boyutunda bir volume gereklidir. Postgres buna kıyasla küçüktür.
  • CPU: herhangi bir modern KVM VPS uygundur, ancak CPU üzerinde ML işlemleri yavaştır. Büyük bir içe aktarmanın akıllı arama indeksleme işlemi arka planda saatlerce sürebilir. Bu normaldir; GPU gerektirmez.
  • VPS'e yönlendirilmiş bir alan adı. Mobil uygulama HTTPS uç noktasını tercih eder ve ön tarafta bir reverse proxy kullanılması önerilir. Bu kurulum, Docker, TLS ve yedekleme içeren self-hosted Nextcloud kurulumu ile aynı yapıdadır; Immich, bu dosya sunucusunun fotoğraf karşılığıdır.
  • Docker ve Compose eklentisi kurulu olmalıdır; Docker Engine ve Docker Compose temelleri kılavuzumuzda anlatıldığı şekilde Docker'ın kendi apt deposundan gelen Compose v2 eklentisi.

Adım 1: Her şeyden önce swap alanı ekleyin

Küçük bir VPS üzerinde Immich ile ilgili en yaygın hata, ML container'ının OOM-killed hatası almasıdır. Çekirdeğe hareket alanı sağlamak için önce swap alanı oluşturun.

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

free -h komutu artık 4.0Gi değerine sahip bir Swap: satırı göstermelidir. Bu işlem ML performansını artırmaz; ancak 4 GB kapasiteli bir makinede indeksleme sırasında container'ın çökmesini engeller.

Step 2: Resmi compose ve env dosyasını alın — kopyasını değil, orijinalini kullanın

Immich, servis versiyonlarını ve kritik olarak veritabanı imajını paylaştığı dosyalar içinde sabitler. Bir blogdan (bu blog dahil) alınan compose dosyasını kaynak olarak kullanmayın. Sürüm varlıklarını indirin:

sudo mkdir -p /opt/immich && cd /opt/immich
sudo wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
sudo wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Bu dosyalar etiketlenmiş sürümden gelir, bu nedenle imaj referansları eşleşir. Compose dosyası dört servis tanımlar; işlem yapmadan önce her birinin ne olduğunu bilmek faydalıdır:

  • immich-server (ghcr.io/immich-app/immich-server, container immich_server) — 2283 portunu dinleyen API ve web arayüzü. Yüklemelerinizi /data dizinine bağlar.
  • immich-machine-learning (ghcr.io/immich-app/immich-machine-learning, container immich_machine_learning) — CLIP araması ve yüz tanıma. İndirilen modelleri model-cache biriminde önbelleğe alır. Bellek kullanımı yüksektir.
  • database (container immich_postgres) — Benzerlik aramasını sağlayan VectorChord vektör eklentisine sahip Postgres. İmaj etiketi, compose dosyası içinde doğrudan digest ile sabitlenmiştir, örneğin ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:.... Eski kurulumlar pgvecto.rs kullanıyordu; Immich v3.0 ile bu desteğin kaldırılması nedeniyle bugün kurulan her şey VectorChord kullanır. Bu etiketi asla manuel olarak düzenlemeyin.
  • redis (container immich_redis) — İş kuyrukları için bir Valkey/Redis örneği.

Adım 3: .env yapılandırması — fotoğrafların ve veritabanının bulunduğu yer

.env dosyasını açın ve dört ayarı yapın. İşaretli çizginin altındaki tüm ayarlar olduğu gibi bırakılmalıdır.

# Where original uploads are stored on the host
UPLOAD_LOCATION=/opt/immich/library

# Where the Postgres data lives. NEVER put this on an NFS/network share.
DB_DATA_LOCATION=/opt/immich/postgres

# "v3" is a floating tag that tracks the latest v3.x. Pin a full tag like
# v3.0.2 instead — then you upgrade on purpose, not by surprise.
IMMICH_VERSION=v3.0.2

# Change this to a long random string. Letters and digits only.
DB_PASSWORD=REPLACE_WITH_A_LONG_RANDOM_STRING

# Set your timezone so timestamps and "on this day" line up
TZ=Europe/London

###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

Sorun yaşamamanızı sağlayacak iki kural: UPLOAD_LOCATION büyük diskinize işaret etmelidir. Eğer daha sonra bir veri hacmi (data volume) eklenecekse, bu ayarı en baştan o hacmin mount yolu olarak belirleyin; aksi takdirde sonradan taşımak, küçük resimlerin (thumbnails) taşınmasını ve varlık yollarının (asset paths) güncellenmesini gerektirir. Ayrıca DB_DATA_LOCATION yerel disk üzerinde olmalıdır: Postgres, NFS veya SMB paylaşımlarında bozulur; dokümantasyon bunu açıkça belirtmektedir. DB_PASSWORD içinde sadece harf ve rakam kullanırsanız, bağlantı dizesi (connection-string) kaçış karakteri (escaping) hatalarından kaçınmış olursunuz.

Step 4: İlk çalıştırma ve admin kullanıcısını oluşturma

cd /opt/immich
sudo docker compose up -d
sudo docker compose ps

Doğru sonuç, tamamı running ve nihayetinde healthy olan dört konteynırdır:

NAME                      STATUS
immich_machine_learning   Up (healthy)
immich_postgres           Up (healthy)
immich_redis              Up (healthy)
immich_server             Up (healthy)

İlk up işlemi birkaç gigabaytlık imaj çeker, bu nedenle işlem süresi beklenmelidir. İlerlemeyi sudo docker compose logs -f immich-server ile takip edebilirsiniz; sunucu hazır olduğunda 2283 portundan dinleme yaptığını günlüğe kaydeder. Şimdi tarayıcıda http://YOUR_SERVER_IP:2283 adresini açın. İlk ziyaret, bir Getting Started sihirbazı gösterir; oluşturulan ilk hesap admin hesabıdır. Güçlü bir parola belirleyin; bu hesap sunucu ayarlarını, kullanıcı yönetimini ve daha sonra ihtiyaç duyacağınız ML yapılandırmasını yönetir.

Adım 5: Mobil uygulama ve arka plan yedeklemesi

App Store veya Play Store üzerinden "Immich" uygulamasını yükleyin. Giriş ekranında Server Endpoint URL istenecektir. Şemayı içeren tam URL'yi girin; örneğin https://photos.example.com (uygulama /api kısmını kendisi ekler). Yeni oluşturduğunuz hesapla giriş yapın, ardından uygulamanın Backup ekranını açın, korunacak albümleri seçin (genellikle Camera ve Screenshots) ve Background backup özelliğini etkinleştirin. iOS işletim sistemi arka plan yedeklemesini kısıtlar; ön plandaki yüklemeler her zaman çalışır, arka plan yüklemeleri ise işletim sisteminin izin verdiği zamanlarda gerçekleşir.

Kullanıcılar genellikle bu aşamada sorun yaşamaktadır; bu nedenle uygulamayı denemeden önce Adım 6'yı okuyun.

Adım 6: Ters proxy aracılığıyla HTTPS — ve tam URL kuralı

Mobil uygulama HTTPS protokolünü zorunlu kılar. Port 2283 önüne bir reverse proxy yerleştirin ve TLS sonlandırmasını burada gerçekleştirin. Eğer halihazırda birden fazla container çalıştırıyorsanız, birden fazla Docker uygulaması için otomatik TLS sağlayan Traefik en düzenli seçenektir; tek bir label bloğu photos.example.com trafiğini immich-server container'ına yönlendirir ve sertifikayı sizin yerinize alır. Eğer nginx tercih ediyorsanız, Certbot ve nginx ile Let's Encrypt kılavuzu size bir sertifika ve proxy_pass http://127.0.0.1:2283; bloğu sağlayacaktır. Immich için bir proxy ayarı kritiktir: yükleme boyutu limitini artırın, çünkü telefon videoları büyüktür. nginx üzerinde bu ayar server bloğu içindeki client_max_body_size 50000M; parametresidir; varsayılan 1 MB değeri, video yüklemelerini 413 Request Entity Too Large hatasıyla reddeder.

Uygulamanın uyguladığı kural: uç nokta erişilebilir olmalı ve pratikte HTTPS kullanmalıdır. http:// uç noktaları veya port içermeyen doğrudan IP adresleri, "uygulama sunucuya ulaşılamıyor" hatasına neden olur; bu durum aşağıda belirli bir hata türü olarak ele alınmıştır.

Adım 7: Harici kütüphaneler ve yüklemeler — mevcut bir fotoğraf ağacını içe aktarma

Fotoğrafların Immich'e dahil edilmesinin iki farklı yolu vardır ve bunlar aynı şey değildir.

  • Uploads (Yüklemeler), Immich'e ait varlıklardır. Uygulama veya web yükleyicisi dosyayı UPLOAD_LOCATION dizinine kopyalar. Immich bu dosyaların adını değiştirebilir, taşıyabilir veya silebilir.
  • External libraries (Harici kütüphaneler), sunucunuzdaki bir klasörde halihazırda bulunan dosyaların salt okunur içe aktarmalarıdır; örneğin eski bir Pictures ağacı veya bir NAS dışa aktarımı. Immich bunları yerinde indeksler ve zaman çizelgesinde gösterir, ancak orijinal dosyaları asla değiştirmez veya silmez.

Mevcut bir ağacı içe aktarmak için, bu ağacı sunucu konteynerine salt okunur olarak bağlayın. immich-server: altındaki docker-compose.yml dosyasını düzenleyin ve bir volume ekleyin:

  immich-server:
    volumes:
      - ${UPLOAD_LOCATION}:/data
      - /etc/localtime:/etc/localtime:ro
      - /srv/photos:/mnt/media/photos:ro

:ro kullanımı, Immich'in orijinal dosyalara asla dokunamamasını sağlar. Konteyneri sudo docker compose up -d ile yeniden oluşturun. Ardından web arayüzünde avatarınıza gidin → Administration → External Libraries → Create Library adımlarını izleyin, sahibi olan kullanıcıyı seçin, Folders altındaki Add butonuna tıklayın ve konteyner yolunu girin — host yolu olan /srv/photos değil, /mnt/media/photos yolunu girin. Scan butonuna tıklayın. Host yolu yerine konteyner yolunun kullanılması, harici kütüphanelerle ilgili yapılan en yaygın hatadır; bu durumda tarama hiçbir şey bulamaz ve sıfır varlık raporlar.

Step 8: Immich tarafından talep edilen yükseltme disiplini

Bu bölüm, sorunsuz çalışan bir Immich ile bozulmuş bir Immich arasındaki farkı belirler. Immich hızlı güncellenir; hataları eski sürümlere geri getirmez (backport) veya sürüm düşürmeyi (downgrade) desteklemez. v3 etiketini körü körüne takip etmek, sonunda veritabanının bozulmasına neden olur. Uygulanması gereken disiplin şudur:

  1. Bir sürüme sabitleyin. IMMICH_VERSION değerini her zaman en yeni v3.x sürümünü çeken değişken v3 yerine, v3.0.2 gibi somut bir etikete ayarlayın.
  2. Yükseltme yapmadan önce her seferinde sürüm notlarını okuyun. Kritik değişiklikler —özellikle veritabanı veya vektör eklentisi değişiklikleri— burada belirtilir. v3.0 sürümü buna net bir örnektir: pgvecto.rs eklentisini tamamen kaldırmıştır; bu nedenle eski eklentiyi kullanan herkes, yükseltme yapmadan önce VectorChord migrasyonunu (v1.133 sürümünde tanıtılmıştı) tamamlamalıdır.
  3. Önce veritabanı yedeği alın (Step 9). Her zaman yedek alın, ancak sürüm notları veritabanından bahsediyorsa buna iki kat dikkat edin.
  4. Yeni compose dosyasını da alın. IMMICH_VERSION sadece server ve ML imajlarını sabitler. Postgres imajı, docker-compose.yml içindeki digest ile sabitlenmiştir; bu nedenle daha yeni bir veritabanı eklentisi gerektiren bir sürüm, yeni bir compose dosyası ile birlikte gelir. Her iki sürüm dosyasını da yeniden indirin, .env değerlerinizi tekrar uygulayın ve ardından yükseltin.
  5. Mobil istemcileri de benzer bir zamanda güncelleyin. Sunucu sadece kendi ana sürümüyle (major version) iletişim kurar; uygulama ise mevcut ve bir önceki ana sürümü destekler. Sunucu uygulamanın önüne geçerse, uygulamayı güncelleyene kadar telefonda Your app major version is not compatible with the server! hatası görünür; bu nedenle uygulamayı önce güncellemek en güvenli yoldur.

Yeni dosyaları yerleştirdikten sonra kullanılacak komutlar:

cd /opt/immich
sudo docker compose pull
sudo docker compose up -d
sudo docker image prune

Step 9: Yedeklemeler — veritabanı dökümü VE orijinaller, ve bunu test edin

Immich yedeği iki bileşenden oluşur; biri olmadan diğeri kullanışsızdır. database (veritabanı) albüm yapısını, yüzleri, arama dizinlerini ve varlıktan dosyaya olan eşleşmeyi tutar. originals directory (orijinaller dizini) ise asıl fotoğrafları tutar. Birini diğeri olmadan geri yüklerseniz, ya organizasyonu olmayan fotoğraflar ya da eksik dosyalara işaret eden boş bir yapı elde edersiniz.

Veritabanını Postgres konteynerinin içinden pg_dump kullanarak dökün — tüm cluster yerine sadece immich veritabanını seçin:

sudo docker exec -t immich_postgres pg_dump --clean --if-exists \
  --dbname=immich --username=postgres | gzip > /opt/immich/immich-db-$(date +%F).sql.gz

Ardından UPLOAD_LOCATION dizinini — tüm /opt/immich/library ağacını ve özellikle library/, upload/ ve profile/ alt klasörlerini — restic, rsync veya borg ile başka bir makineye veya object storage alanına yedekleyin. Önce veritabanını, sonra dosyaları yedekleyin; böylece döküm, dosya yedeğinin henüz kopyalamadığı bir fotoğrafa referans vermez. Harici kütüphaneler gerçek kaynaklarında ayrı olarak yedeklenmelidir; Immich bunlara sahip değildir.

Şimdi herkesin atladığı kısım: geri yüklemeyi test edin. Geri yükleme işlemi, sunucusu daha önce hiç başlatılmamış yeni bir stack üzerinde ve vector eklentisi döküm ile uyumlu bir Postgres imajı üzerinde çalıştırılmalıdır; bu yüzden DB imaj etiketini asla rastgele seçmemelisiniz. Aynı compose ve .env kullanan temiz bir cihazda, eski tüm verileri silin, sadece veritabanını ayağa kaldırın ve ardından dökümü yükleyin:

cd /opt/immich
sudo docker compose down -v
sudo docker compose pull
sudo docker compose create
sudo docker start immich_postgres
sleep 10
gunzip --stdout immich-db-2026-07-15.sql.gz |
  sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" |
  sudo docker exec -i immich_postgres psql --dbname=immich --username=postgres --single-transaction --set ON_ERROR_STOP=on
sudo docker compose up -d

VectorChord veritabanı kullanılıyorsa search_path için sed yeniden yazımı zorunludur; bunu yapmazsanız geri yükleme işlemi yarıda kesilir. Stack, orijinaller yerindeyken ayağa kalktığında web arayüzünü açın: fotoğraflarınız ve albümleriniz oradaysa yedeğiniz çalışıyor demektir. Eğer bunu daha önce hiç yapmadıysanız, bir yedeğiniz yok demektir; sadece bir umudunuz vardır.

Hata modları ve karşılaşacağınız metinler

ML konteyneri OOM-killed hatası alıyor. sudo docker compose logs immich-machine-learning aniden sona erer, docker compose ps bunu Restarting olarak gösterir ve çıkış kodu 137 olur. sudo dmesg | grep -i oom bunu doğrular: Out of memory: Killed process ... (python3). Bu durumdan sonra arama ve yüz tanıma işleri durur. Sebep, modeller için yetersiz RAM miktarıdır. Sırasıyla çözüm yolları: swap ekleyin (Adım 1); VPS'e daha fazla RAM verin; veya eğer mümkün değilse, Administration → Settings → Machine Learning Settings menüsünden Smart Search ve Facial Recognition özelliklerini kapatarak ML'i devre dışı bırakın — yedekleriniz ve albümleriniz korunur, ancak içerik tabanlı arama özelliği kaybolur. Compose dosyasından immich-machine-learning servisini kaldırmak da aynı sonucu verir.

Yükseltme sonrası Postgres başlatılamıyor. Sunucu günlüğü The database currently has VectorChord 0.5.3 activated, but the Postgres instance only has 0.4.2 available. This most likely means the extension was downgraded. gibi bir satırla döngüye girer — veya eski kurulumlarda The pgvecto.rs extension is not available in this Postgres instance. hatası verir. Sebep, veritabanı imajının uzantı sürümünün, yükseltilen veri sürümünden daha eski olmasıdır; bu durum genellikle imaj etiketinin elle düzenlenmesi veya daha yeni bir dökümün (dump) eski bir imaja geri yüklenmesi sonucu oluşur. Çözüm, eşleşen Postgres imajını kullanmaktır — veritabanınızla eşleşen sürümün compose dosyasını kullanın, sürüm düşürmeyin ve yalnızca uyumlu bir imaja geri yükleme yapın.

Mobil uygulama sunucuya erişemiyor. URL girildikten sonra giriş ekranında bağlantı hatası / Server is not reachable görünür. Üç olası sebep vardır: Proxy sadece https:// hizmeti sunarken siz http:// yazdınız; doğrudan backend'e bağlandınız ancak portu belirtmediniz, bu yüzden sistem example.com:2283 yerine example.com (port 443) üzerinden deneme yaptı; veya reverse proxy /api yönlendirmesini yapmıyor. Çözüm için tam https://photos.example.com URL'sini girin ve önce bir telefon tarayıcısında çalıştığını doğrulayın. Tarayıcı çalışıyor ancak uygulama çalışmıyorsa, proxy yolu (path) temizliyor olabilir veya sertifika self-signed (kendinden imzalı) olabilir — uygulama, güvenilmeyen sertifikaları reddeder.

İçe aktarma sırasında disk doluyor. Yüklemeler başarısız olmaya başlar, küçük resimler (thumbnails) boş görünür ve günlüklerde ENOSPC: no space left on device veya Postgres tarafında could not extend file ... No space left on device görünür. df -h, UPLOAD_LOCATION hacminin (volume) %100 dolduğunu gösterir. Büyük bir kütüphaneyi içe aktarmadan önce disk boyutunun ayarlanması bu yüzden gereklidir. Çözüm için daha büyük bir hacim bağlayın, stack'i durdurun, UPLOAD_LOCATION verisini buna taşıyın, .env değerini güncelleyin ve tekrar başlatın — veya sağlayıcınız izin veriyorsa mevcut diski genişletin. Postgres dolarsa kilitlenebilir, bu nedenle veri bozulması varsayımında bulunmadan önce diskte yer açın ve veritabanı konteynerini yeniden başlatın.

FAQ

Immich için ne kadar RAM ve disk gerekir?

Immich'in resmi gereksinimleri minimum 6 GB RAM ve önerilen 8 GB RAM'dir. Küçük bir kütüphane için swap ile birlikte 4 GB pratik alt sınırdır; makine öğrenmesi (machine-learning) konteynerindeki ani yük artışları nedeniyle her durumda swap yapılandırılmalıdır. Disk için, yerel depolama üzerinde tüm kütüphane boyutuna ek olarak oluşturulan küçük resimler (thumbnails) ve önizlemeler için yaklaşık %10–20 pay ayrılmalıdır. Postgres veri dizini asla bir ağ paylaşımına (network share) konulmamalıdır. Başka hangi servisleri çalıştıracağınıza karar veremediyseniz, 2026'da self-host edilecek servisler kılavuzu Immich'in kaynak kullanımını diğer servislerle karşılaştırmalı olarak sunar.

Immich'i GPU olmadan çalıştırabilir miyim?

Evet. Makine öğrenmesi konteyneri CPU üzerinde sorunsuz çalışır; GPU yalnızca akıllı arama (smart-search) indekslemesini ve doğru görüntü varyantı ile video transcoding işlemini hızlandırır. CPU kullanımında, büyük bir kütüphanenin ilk indeksleme işlemi arka planda saatler sürebilir, ancak bu durum yedeklemeleri veya gezintiyi engellemez. Eğer sisteminiz ML için çok yetersizse, yönetici ayarlarından Smart Search ve Facial Recognition özelliklerini devre dışı bırakıp diğer tüm özellikleri kullanmaya devam edebilirsiniz.

Immich'i güvenli bir şekilde nasıl güncellerim?

IMMICH_VERSION sürümünü v3.0.2 gibi belirli bir etikete (tag) sabitleyin, her güncelleme öncesinde sürüm notlarını okuyun ve önce veritabanı yedeği alın. Postgres imajı IMMICH_VERSION yerine docker-compose.yml içinde sabitlendiği için, hedef sürümden hem compose dosyasını hem de example.env dosyasını yeniden indirin, değerlerinizi tekrar uygulayın ve ardından docker compose pull && docker compose up -d komutunu çalıştırın. Sürümün kontrolsüz bir şekilde değişmesine izin vermeyin; Immich bozucu değişiklikler (breaking changes) içerebilir ve sürüm düşürmeyi (downgrade) desteklemez.

Tam olarak neyi yedeklemeliyim?

İki öğe birlikte yedeklenmelidir: immich veritabanının bir pg_dump dosyası ve tüm UPLOAD_LOCATION originals dizini. Veritabanı albümleri, yüzleri ve varlık-dosya eşleşmesini tutar; dizin ise asıl fotoğrafları tutar. Geri yükleme işlemi için her ikisine de ve uyumlu bir vektör eklentisine sahip bir veritabanı imajına ihtiyaç vardır. Önce veritabanı dökümünü (dump) alın, ardından dosya kopyalama işlemini yapın ve geri yüklemeyi en az bir kez boş bir sistem üzerinde test edin; test edilmemiş bir yedek, yedek değildir.

Mevcut fotoğraf klasörümü nasıl içe aktarırım?

Klasörü, ek bir hacim (örneğin - /srv/photos:/mnt/media/photos:ro) olarak immich-server konteynerine salt okunur (read-only) olarak bağlayın, konteyneri yeniden oluşturun ve ardından Administration → External Libraries menüsünden bir kütüphane oluşturup container yolu olan /mnt/media/photos dizinini ekleyin. Immich dosyaları mevcut yerinde indeksler; dosyaları asla değiştirmez veya silmez. En yaygın hata, host yolu yerine konteyner yolunun girilmesidir; bu durum taramanın hiçbir dosya bulamamasına neden olur.