Rozwiązanie społecznościowe

Dodaj zewnętrzną bibliotekę zdjęć do Immich na ZimaOS

A ZimaOS user wanted Immich to recognize photos already stored on another drive. The confirmed community solution was to mount that host folder into immich-server and then add the container-side path as an Immich External Library.

Jeśli masz już zdjęcia na innym dysku HDD lub SSD i chcesz, aby Immich w ZimaOS je indeksował bez przenoszenia ich do standardowej biblioteki przesyłanych plików Immich, użyj biblioteki zewnętrznej. Wątek społeczności z października 2024 roku potwierdził ten proces: najpierw udostępnij folder hosta ZimaOS kontenerowi immich-server, a następnie dodaj odpowiadającą mu ścieżkę po stronie kontenera w panelu administracyjnym Immich.

Różni się to od zmiany głównej lokalizacji przechowywania przesyłanych plików w Immich. Późniejsza odpowiedź w tym samym wątku dotyczyła tego, czy zewnętrzny dysk może stać się jedyną lokalizacją wszystkich przyszłych przesyłanych plików Immich, ale kwestia ta nie została rozstrzygnięta w wątku źródłowym. Obecna dokumentacja Immich traktuje te scenariusze jako dwa odrębne procesy: biblioteki zewnętrzne dla istniejących plików oraz UPLOAD_LOCATION/niestandardowe ścieżki przechowywania przesyłanych plików zarządzanych przez Immich.

Co faktycznie rozwiązywał oryginalny wątek

Autor oryginalnego wpisu chciał, aby Immich rozpoznawał zdjęcia przechowywane poza domyślną lokalizacją. Później zgłosił, że ta sekwencja zakończyła się powodzeniem:

  1. Otwórz ustawienia Immich w ZimaOS.
  2. Otwórz usługę immich-server.
  3. Dodaj folder hosta ZimaOS jako wolumin Dockera.
  4. Użyj ścieżki po stronie kontenera, takiej jak /home/user/photos1.
  5. Otwórz panel administracyjny Immich.
  6. Utwórz bibliotekę zewnętrzną i dodaj tę samą ścieżkę po stronie kontenera.

Późniejszy użytkownik wyraźnie potwierdził, że to rozwiązanie zadziałało w jego przypadku.

Ścieżka hosta i ścieżka Immich są różne

Koncepcja mapowania Dockera wygląda następująco:

Folder hosta ZimaOS → folder kontenera Immich

Na przykład:

/media/Photos:/home/user/photos1:ro

Immich nie skanuje bezpośrednio ścieżki hosta ZimaOS. Może skanować wyłącznie ścieżkę widoczną wewnątrz swojego kontenera:

/home/user/photos1

Używaj trybu tylko do odczytu dla istniejących archiwów zdjęć

Oryginalne rozwiązanie społeczności używało :ro. Aktualna dokumentacja Immich nadal zaleca montowanie tylko do odczytu, gdy Immich ma jedynie indeksować pliki:

/media/Photos:/home/user/photos1:ro

Tryb tylko do odczytu uniemożliwia Immich usuwanie plików lub zapisywanie dodatkowych metadanych w folderze źródłowym.

Aktualna dokumentacja bibliotek zewnętrznych Immich

Utwórz bibliotekę zewnętrzną w Immich

Po utworzeniu punktu montowania otwórz Immich za pomocą konta administratora i przejdź do sekcji bibliotek zewnętrznych. Utwórz bibliotekę, wybierz jej właściciela i dodaj ścieżkę kontenera:

/home/user/photos1

Następnie uruchom skanowanie. Immich powinien rozpocząć indeksowanie zdjęć oraz tworzenie zadań generowania miniatur i metadanych.

Sprawdź, czy ścieżka istnieje wewnątrz kontenera

Jeśli Immich odrzuca ścieżkę biblioteki, potwierdź, że punkt montowania jest widoczny w immich-server. Główny problem opisany w wątku źródłowym nie polegał jedynie na wybraniu folderu w interfejsie Immich — Docker musiał najpierw udostępnić ten folder wewnątrz kontenera.

Obecna dokumentacja Immich wyraźnie określa ten sam wymóg: podłączona ścieżka musi istnieć wewnątrz kontenera, zanim będzie można dodać ją jako bibliotekę zewnętrzną.

Nie kopiuj bezkrytycznie historycznego kroku z kartą bazy danych

W poście źródłowym z 2024 roku wspomniano również o dodaniu tej samej ścieżki na karcie bazy danych Immich. Obecnie do tej instrukcji należy podchodzić ostrożnie.

Obecnie upstreamowa wersja Immich rozdziela:

  • przechowywanie zdjęć i filmów za pośrednictwem UPLOAD_LOCATION lub podłączonych zewnętrznych bibliotek;
  • Magazyn bazy danych PostgreSQL za pośrednictwem DB_DATA_LOCATION.

Lokalizacja bazy danych to nie to samo co lokalizacja biblioteki zdjęć. Nie mapuj dowolnego folderu ze zdjęciami do PostgreSQL tylko dlatego, że stary pakiet ZimaOS udostępniał kartę usługi Database.

Zewnętrzna biblioteka a główny magazyn Immich

Cel Użyj
Indeksuj zdjęcia przechowywane już w innym miejscu Zewnętrzna biblioteka
Spraw, aby przyszłe przesyłane pliki Immich były przechowywane na innym dysku Zmień lokalizację przesyłania/magazynu Immich

Wątek źródłowy potwierdza pierwszy przypadek, a nie drugi.

Jeśli chcesz, aby zewnętrzny dysk był głównym magazynem Immich

Aktualna konfiguracja Docker Compose Immich używa:

UPLOAD_LOCATION=./library

i mapuje tę ścieżkę hosta do /data wewnątrz immich-server. Aktualna dokumentacja dotycząca niestandardowych lokalizacji wyjaśnia, jak przenieść dane zarządzane przez Immich do innej lokalizacji magazynu hosta przy zachowaniu oczekiwanych ścieżek kontenera.

Niestandardowe lokalizacje magazynu Immich

Jeśli ważne zdjęcia już znajdują się w Immich, przed zmianą głównej lokalizacji magazynu wykonaj kopię zapasową zarówno bazy danych, jak i systemu plików.

Wymagania dotyczące bazy danych traktuj oddzielnie

Baza danych PostgreSQL ma inne wymagania dotyczące przechowywania niż pliki zdjęć. Aktualna dokumentacja Immich wskazuje, że udziały sieciowe nie są obsługiwane jako ścieżka bazy danych, a baza danych powinna korzystać z odpowiedniego lokalnego systemu plików.

Nie przenoś PostgreSQL tylko dlatego, że dodajesz zewnętrzną bibliotekę zdjęć.

Zewnętrzne biblioteki nadal wymagają niezależnych kopii zapasowych

Immich nie kopiuje oryginalnych zasobów z zewnętrznej biblioteki do swojego standardowego zarządzanego magazynu. Oryginały pozostają na zewnętrznym dysku. Jeśli te pliki zostaną usunięte z dysku, Immich może oznaczyć je jako brakujące lub usunąć z aktywnej biblioteki po ponownym skanowaniu.

Wykonuj niezależne kopie zapasowe dysku źródłowego. Metadane bazy danych Immich nie zastępują kopii zapasowej systemu plików.

Lista kontrolna zewnętrznej biblioteki Immich w ZimaOS

  1. Znajdź istniejący folder hosta ZimaOS zawierający zdjęcia.
  2. Otwórz bieżące ustawienia aplikacji/kontenera Immich.
  3. Zamontuj folder hosta w immich-server.
  4. Preferuj :ro dla archiwum, którego Immich nie powinien modyfikować.
  5. Użyj czytelnej ścieżki kontenera, takiej jak /home/user/photos1 lub /mnt/media/photos.
  6. Otwórz Administracja Immich → Biblioteki zewnętrzne.
  7. Dodaj dokładną ścieżkę po stronie kontenera.
  8. Uruchom skanowanie biblioteki.
  9. Nie myl tego z przenoszeniem głównego UPLOAD_LOCATION.
  10. Wykonuj osobne kopie zapasowe zewnętrznego dysku.

Często zadawane pytania dotyczące zewnętrznego magazynu Immich

Czy oryginalne rozwiązanie zadziałało?

Tak. Autor oryginalnego wpisu zgłosił, że rozwiązanie działa, a później inny użytkownik potwierdził, że ten sam sposób zadziałał również u niego.

Czy biblioteka zewnętrzna ustawia zewnętrzny dysk jako główne miejsce przesyłania plików Immich?

Nie. Biblioteki zewnętrzne indeksują pliki, które już znajdują się poza zarządzanym przez Immich magazynem przesyłanych plików.

Jaką ścieżkę mam wpisać w Immich?

Użyj ścieżki po stronie kontenera z mapowania Dockera, a nie ścieżki hosta ZimaOS.

Tak, gdy folder zewnętrzny jest archiwum, które Immich powinien tylko odczytywać. Usuń tryb tylko do odczytu wyłącznie wtedy, gdy chcesz, aby Immich celowo modyfikował lub usuwał znajdujące się tam pliki.