Jak powiązane są Gallery i Immich

Noodle Gallery to przyjazny fork Immicha, open-source'owej platformy do samodzielnie hostowanego zarządzania zdjęciami, stworzonej przez Alexa Trana i rosnącą społeczność. Gallery rebase'uje się na każdą wersję upstream Immicha, dzięki czemu poprawki błędów, usprawnienia wydajności i nowe funkcje od zespołu Immicha automatycznie trafiają do Gallery.

Ta relacja jest celowo prosta: Immich jest fundamentem. Gallery siada na nim i dokłada niewielką liczbę funkcji dla zastosowań, które nie mieszczą się w zakresie upstreamu. Ta sama baza danych, te same kontenery, ta sama droga powrotna. Jeśli zmienisz zdanie, powrót to zmiana w trzech wierszach.

Ta strona istnieje, ponieważ ludzie korzystający z Immicha słusznie pytają: „Co jest inne?” Odpowiedź zasługuje na jasność — nie dlatego, że uważamy upstream za gorszy.

Gdzie Immich napotyka granice — i jak Gallery je zamyka

Każda ekskluzywna funkcja Gallery zaczęła się od tej samej obserwacji: ktoś natknął się w Immichu na granicę i szukał wyjścia. Poniższe kategorie grupują te granice tematycznie — każda wraz z funkcjami Gallery, które je rozwiązują.

Osoby i tożsamość

Granica. Rozpoznawanie twarzy w Immichu kończy się na koncie. Ta sama realna osoba istnieje jako osobny wpis w Twojej bibliotece, w bibliotece Twojego partnera i w każdym współdzielonym albumie, którego oboje dotykacie. Gdy jej szukasz, znajdujesz jedną trzecią jej zdjęć. Gdy nadasz jej nazwę w jednym koncie, nic nie przenosi się na pozostałe. Strona osób pokazuje, w którym pojemniku ktoś się pojawia — a nie kto faktycznie przewija się przez Twoje życie.

Jak Gallery to rozwiązuje.

Udostępnianie i współpraca

Granica. Dwa prymitywy udostępniania w Immichu — udostępnianie partnerowi i albumy — napotykają granice przy więcej niż dwóch osobach. Udostępnianie partnerowi jest wszystko albo nic. Albumy należą do osoby, która je utworzyła. Nie ma wspólnej rodzinnej osi czasu, dziennika aktywności, „co nowego od mojej ostatniej wizyty“ ani sposobu na udostępnienie dziesiątek tysięcy zdjęć bez ręcznego ich wybierania.

Jak Gallery to rozwiązuje.

Wyszukiwanie i odkrywanie

Granica. Każda strona w Immichu ma własne wyszukiwanie; nie ma globalnego, sterowanego klawiaturą punktu wejścia. Wyniki Smart Search wracają w kolejności trafności, bez sortowania po dacie i bez progu podobieństwa. Filtry działają w izolacji.

Jak Gallery to rozwiązuje.

AI i automatyzacja

Granica. Powierzchnia AI w Immichu skupia się na twarzach i podstawowym wyszukiwaniu CLIP. Zwierzęta nie są rozpoznawane. Wspomnienia pokazują tylko „On This Day”. Nie ma automatycznego sposobu, by usunąć bałagan z osi czasu.

Jak Gallery to rozwiązuje.

Zarządzanie mediami i migracja

Granica. Przycinanie filmów w Immichu oznacza: wyeksportuj, edytuj zewnętrznie, zaimportuj ponownie. Przejście z Google Zdjęć wymaga narzędzi CLI i skryptów. Magazyn to lokalny dysk lub biblioteki zewnętrzne, ale nie natywny magazyn zgodny z S3.

Jak Gallery to rozwiązuje.

Aplikacja mobilna

Granica. Filtry osi czasu w aplikacji Immicha oznaczają przejście na osobną zakładkę wyszukiwania i utratę pozycji przewijania. Zaawansowane powierzchnie, takie jak mapa, wyszukiwanie z zakresem i Przestrzenie Współdzielone, leżą głębiej w aplikacji albo ich brakuje.

Jak Gallery to rozwiązuje.

Granice w bezpośrednim porównaniu

Skondensowane zestawienie tych samych luk i ich rozwiązań — przydatne, gdy chcesz zobaczyć cały obraz w tabeli.

docker-compose.yml
-image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
+image: ghcr.io/open-noodle/gallery-server:${IMMICH_VERSION:-release}
-image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
+image: ghcr.io/open-noodle/gallery-ml:${IMMICH_VERSION:-release}
Pełny przewodnik migracji
Gdzie Immich napotyka granice Jak Gallery to rozwiązuje
Filtry mobilne opuszczają zakładkę Zdjęcia i tracą pozycję przewijania Panel filtrów wprost w zakładce Zdjęcia — osoby, miejsca, tagi, data, ocena, typ mediów
Udostępnianie partnerowi jest wszystko albo nic; albumy należą do osoby, która je tworzy; rozpoznawanie twarzy kończy się na koncie Przestrzenie Współdzielone z osiami czasu o wielu właścicielach, rolami, rozpoznawaniem twarzy między kontami, śledzeniem ostatniej wizyty i dziennikiem aktywności
Ta sama osoba może pojawiać się jako wiele wpisów w bibliotekach prywatnych i współdzielonych Globalne Osoby — świadome tożsamości wiersze osób, filtry i wyniki wyszukiwania w dostępnych przestrzeniach z osią czasu
Zwierzęta nie są rozpoznawane Wykrywanie zwierząt z YOLO11 i własnymi grupami zwierząt
Wspomnienia pokazują tylko “On This Day” Mądrzejsze wspomnienia z retrospekcjami z podróży i urodzin
Wygenerowane wspomnienia znikają po swoim dziennym oknie karuzeli Archiwum wspomnień z wyszukiwaniem i konfigurowalnym przechowywaniem
Każda strona ma własne wyszukiwanie; brak globalnego punktu wejścia z klawiatury Paleta wyszukiwania przez Cmd/Ctrl+K z dowolnego miejsca
Zaawansowane filtry wymagają opuszczenia przepływu klawiaturowego i przejścia do panelu filtrów Wbudowane filtry wyszukiwania — strukturalne filtry wpisywane wprost w pasek wyszukiwania, z podpowiedziami na żywo i współdzielonym stanem URL
Nawigacja po dużych bibliotekach oznacza przewijanie przez każdy dzienny kubełek — brak skoku do roku czy miesiąca jednym spojrzeniem Grupowanie osi czasu — przełącznik Lata / Miesiące / Wszystko na każdej osi czasu; przybliżanie i oddalanie przez dotknięcie karty roku lub miesiąca, aby szybko znaleźć zdjęcie w dekady starej bibliotece
Smart Search nie ma sortowania po dacie ani progu trafności Sortowanie po dacie, nieskończone przewijanie po dacie, regulowany próg podobieństwa
Filtry działają w izolacji Filtry zależne zawężają się nawzajem na żywo
Mapa nie ma własnego panelu filtrów Pełen panel filtrów na mapie, znaczniki aktualizują się na żywo
Brak natywnego magazynu zgodnego z S3 AWS S3, MinIO, Cloudflare R2, Backblaze B2, Wasabi lub dowolny magazyn zgodny z S3
Import z Google Zdjęć wymaga narzędzi CLI i skryptów Prowadzony kreator importu archiwów Google Takeout w przeglądarce
Przycinanie filmów oznacza eksport i ponowne kodowanie Bezstratne przycinanie przez stream copy, niemal natychmiastowe

Co ważne: każde rozwiązanie powyżej jest addytywne. Gallery nie zastępuje niczego, co robi Immich. Funkcje podstawowe, REST API, oficjalne aplikacje Immicha, integracje zewnętrzne, Frame, automatyka domowa — wszystko nadal działa na serwerze Gallery.

Czy powinieneś zostać przy upstream Immichu?

Istnieją realne powody, by uruchamiać upstream Immicha zamiast forka. To nie są punkty na zasłonę dymną, lecz przypadki, w których upstream jest właściwym wyborem.

Wielkość społeczności i historia

Immich działa od 2022 roku, ma dziesiątki tysięcy gwiazdek na GitHubie, wielu kontrybutorów i duży Discord. Jeśli zależy Ci na komforcie dużej społeczności, upstream jest właściwym miejscem.

Szersze testowanie na różnych platformach

Upstream Immich działa na bardzo wielu kombinacjach sprzętu i NAS-ów. Jeśli Twoja konfiguracja jest nietypowa, ta większa powierzchnia testowa pomaga.

Nie potrzebujesz dodatków

Jeśli nie potrzebujesz Przestrzeni Współdzielonych, wykrywania zwierząt, magazynu S3, importów Google Takeout ani zaawansowanych filtrów, upstream Immich już robi wszystko, czego chcesz.

Migracja z Immicha to zmiana w trzech wierszach

Jeśli Immich już u Ciebie działa i chcesz wypróbować Gallery, przejście jest trywialne. Zamień dwie nazwy obrazów w swoim docker-compose.yml i ustaw IMMICH_VERSION w swoim .env na v4.

2 zmienione pliki +3 −3
docker-compose.yml
- image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
+ image: ghcr.io/open-noodle/gallery-server:${IMMICH_VERSION:-release}
- image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
+ image: ghcr.io/open-noodle/gallery-ml:${IMMICH_VERSION:-release}
.env
- IMMICH_VERSION=release
+ IMMICH_VERSION=v4

Następnie pobierz nowe obrazy i uruchom ponownie:

docker compose pull && docker compose up -d

Bez migracji danych. Bez konwersji bazy danych. Bez kopiowania plików. Twoja biblioteka zostaje dokładnie tam, gdzie jest.

Wcześniej wykonaj kopię zapasową bazy danych — wystarczy jedno polecenie: docker exec -t your-db-container pg_dumpall -U postgres > backup.sql

Pełny przewodnik krok po kroku znajdziesz na stronie instalacji. Zobacz przewodnik migracji →

Zmieniłeś zdanie? Wróć za pomocą skryptu.

Gallery dostarcza skrypt SQL czyszczący, który usuwa wszystkie rozszerzenia bazy danych specyficzne dla Gallery. Twoje zdjęcia i filmy nigdy nie są ruszane. Wystarczy zamienić dwie nazwy obrazów z powrotem i znów jesteś na upstreamie.

Przeczytaj przewodnik powrotu
Zadaniem Gallery jest udostępnienie niewielkiej liczby dodatkowych funkcji, bez zmuszania Cię do wyboru między nimi a roadmapą Immicha.

Najczęstsze pytania

Czy moje dane są bezpieczne przy przejściu z Immicha na Noodle Gallery?

Tak. Gallery używa tego samego schematu bazy danych, tej samej struktury katalogu uploadów i tych samych formatów plików co upstream Immich. Migracja sprowadza się do zmiany dwóch nazw obrazów w Twoim docker-compose.yml. Twoja biblioteka nigdy nie jest kopiowana, przekształcana ani nadpisywana — Gallery czyta i zapisuje te same pliki, których Immich już używa.

Czy mogę później wrócić do upstream Immicha?

Tak. Gallery dostarcza skrypt czyszczący, który usuwa z bazy danych każdą tabelę, kolumnę i znacznik migracji specyficzny dla Gallery. Twoje zdjęcia i filmy nigdy nie są ruszane. Uruchamiasz skrypt, przywracasz dwie nazwy obrazów na ghcr.io/immich-app/immich-server i ghcr.io/immich-app/immich-machine-learning, wykonujesz docker compose pull i znów jesteś na upstreamie.

Czy Gallery z czasem oddali się od Immicha?

Nie, celem jest dokładnie odwrotne. Gallery rebase'uje się na każdą wersję upstream Immicha, dzięki czemu poprawki błędów, usprawnienia wydajności i nowe funkcje od zespołu Immicha automatycznie trafiają do Gallery. Ekskluzywne funkcje Gallery są addytywne — leżą na upstreamie, a nie zamiast niego.

Jak szybko Gallery rebase'uje się po nowej wersji Immicha?

Zwykle w ciągu kilku dni. Proces rebase'u jest zautomatyzowany tam, gdzie ma to sens, i ręczny tam, gdzie to konieczne. Celem jest pozostawanie na tyle blisko, żeby Gallery sprawiało wrażenie lekko rozszerzonego Immicha, a nie innego projektu.

Czy Gallery ma aplikację mobilną?

Tak. Noodle Gallery jest dostępne w App Store na iPhone'a i w Google Play na Androida, z kopią zapasową aparatu w tle, wyszukiwaniem CLIP na urządzeniu, widokiem mapy i Przestrzeniami Współdzielonymi. Aplikacje upstream Immicha również nadal działają z serwerami Gallery dzięki wspólnemu API.

Czy zewnętrzne aplikacje dla Immicha nadal działają z Noodle Gallery?

Tak, w pełni. Gallery udostępnia to samo REST API co upstream Immich — te same endpointy, te same ścieżki, te same payloady. Wszystko, co działa z Immichem, działa bez zmian również z Gallery: klienci mobilni, oficjalne aplikacje Immicha, Immich Frame, integracje automatyki domowej, narzędzia CLI i skrypty.

Po co w ogóle forkować, zamiast wnosić funkcje do upstreamu?

Kilka ekskluzywnych funkcji Gallery, takich jak Przestrzenie Współdzielone, wykrywanie zwierząt i filtry kontekstowe, zostało odrzuconych przez upstream, uznanych za wykraczające poza jego zakres lub wymagałoby zmian architektonicznych niepasujących do roadmapy Immicha. Fork pozwala eksperymentować bez spowalniania zespołu upstream — a rebase oznacza, że nie tracimy ich postępów.

Słowo o zespole upstream Immicha

Noodle Gallery istnieje, ponieważ istnieje Immich. Zespołowi upstream zawdzięczamy architekturę, projekt bazy danych, aplikacje mobilne, integrację CLIP i ogromne tempo wydań. Jeśli Gallery okaże się dla Ciebie przydatne, daj proszę również immich-app/immich gwiazdkę, sponsoring lub wkład.