Przejdź do treści

Tysiące zdjęć i filmów – jak to ogarnąć na własnym serwerze?

Autor: Maciej Walczak
Spis treści
Grafika: laptop z galerią zdjęć w Immich i monitor z biblioteką filmów w Stash, pomiędzy nimi serwer NAS, nad nimi napis „Zarządzanie wielkimi zbiorami zdjęć i filmów”

Jest takie mądre powiedzenie, że są 2 rodzaje ludzi – ci którzy robią backupy i ci, którzy dopiero będą je robić. Ja od jakiegoś czasu należę do tej pierwszej grupy – mój serwer NAS z TrueNAS Scale, którego perypetie opisałem we wpisie TrueNAS – czyli jak postawić sieciowy magazyn dyskowy i nie zbankrutować – przydługa opowieść ze zwrotem akcji, od początku miał być bezpiecznym miejscem na to, czego nie da się odkupić – dokumenty, a przede wszystkim zdjęcia i filmy z naszych telefonów.

I to działa. Pliki są zgrane, dyski pracują w mirrorze (już na CMR – o tym, jak się na tym przejechałem, było w TrueNAS vs dyski SMR/CMR – czyli jak wpadłem w pułapkę zastawioną przez producentów dysków HDD), dane są bezpieczne. Problem pojawia się później – gdy chcemy coś w tym archiwum znaleźć.

Bo co z tego, że na dyskach leżą tysiące zdjęć i filmów, skoro znalezienie konkretnego filmiku sprzed kilku lat sprowadza się do przeklikiwania folderów o nazwach typu DCIM_2019_kopia_2? Z kilku telefonów, z kilku lat, kopiowanych na raty i czasem po 2 razy…

O tym, jak to ogarniam, będzie właśnie ten wpis. Ogarniam – bo od razu się przyznam, że jestem dopiero na początku drogi. Do Immicha zaimportowałem póki co zaledwie część zdjęć – ok. 4000, czyli 17 GB. W Stashu jest niecałe 2000 filmów zajmujących 232 GB – i to też dopiero początek, będzie ich dużo więcej. Ale już na tym etapie widać, że to był dobry kierunek.

Czego właściwie szukam?

Zanim zacząłem cokolwiek instalować, spisałem sobie kilka wymagań:

  • self-hosted – wszystko ma działać na moim serwerze, a nie w chmurze. Powody są 2: koszty (płacenie co miesiąc za kilka TB miejsca w Google Photos czy iCloud szybko przestaje być zabawne) i prywatność – zdjęcia dzieci to ostatnia rzecz, jaką chcę oddawać do trenowania czyichś modeli
  • import, katalogowanie i wyszukiwanie – program ma sam przeskanować pliki, wyciągnąć z nich co się da i pozwolić je potem szybko znaleźć
  • wygodny interfejs www – tak, żeby z biblioteki mogła skorzystać też żona, a nie tylko „ten od komputerów”

Ktoś powie – przecież to wszystko robi Google Photos. Tak, to prawda, robi to świetnie. Tylko że płacimy za to podwójnie – raz abonamentem, a drugi raz swoimi danymi. A skoro mam już serwer, który i tak chodzi 24/7, to szkoda go nie wykorzystać.

Co jest na rynku?

Okazuje się, że self-hostowanych galerii jest całkiem sporo – wyrosły jak grzyby po deszczu, zwłaszcza w ostatnich latach, gdy Google przestał oferować darmowe miejsce bez limitu. Przejrzałem najpopularniejsze (liczby gwiazdek na GitHubie z października 2026, tak dla orientacji w popularności):

Zdjęcia

  • Immich (~115 tys. gwiazdek) – zdecydowany lider. Napisany jako alternatywa dla Google Photos – aplikacja mobilna z automatycznym backupem, rozpoznawanie twarzy, wyszukiwanie „po ludzku” (CLIP), mapa, albumy, wiele kont użytkowników. Licencja AGPL, projekt wspierany przez FUTO
  • PhotoPrism (~40 tys. gwiazdek) – starszy i dojrzały, również z rozpoznawaniem twarzy i automatycznym tagowaniem. Część funkcji jest jednak dostępna tylko w płatnych planach, a dedykowanej aplikacji mobilnej do backupu brak
  • Ente (~29 tys. gwiazdek) – nastawiony na szyfrowanie end-to-end. Głównie usługa chmurowa, ale serwer można postawić u siebie
  • LibrePhotos (~8 tys. gwiazdek) – podobne założenia co Immich, ale dużo mniejsza społeczność
  • Piwigo i Lychee – klasyczne galerie www. Fajne, jeśli chcemy pokazać albumy światu, ale do archiwum z telefonów – szału nie ma
  • Nextcloud (z aplikacją Memories) – opcja dla tych, którzy i tak mają już Nextclouda. Dla samych zdjęć to jednak spora armata na wróbla

Filmy

Tu sprawa jest ciekawsza. Hasło „self-hosted video” wyrzuca przede wszystkim serwery multimedialne: Jellyfin (~58 tys. gwiazdek), Plex czy Emby. To świetne narzędzia, ale do czego innego – służą do oglądania filmów i seriali, a metadane pobierają z baz typu TMDB. Domowy filmik „IMG_4521.MOV” nie ma w nich ani okładki, ani opisu, a narzędzi do jego katalogowania jest niewiele.

Immich też obsługuje filmy – i to całkiem dobrze – ale traktuje je jak zdjęcia, które się ruszają. Do porządkowania dużej kolekcji wideo brakowało mi w nim filtrowania i opisywania.

I tak trafiłem na Stash (~13 tys. gwiazdek) – aplikację napisaną w Go, która jest właśnie organizerem kolekcji wideo (i zdjęć). Ale o nim za chwilę…

Co ważne dla posiadaczy TrueNAS

Zarówno Immich, jak i Stash są dostępne w katalogu aplikacji TrueNAS Scale (sekcja community). Jellyfin, Nextcloud i Piwigo zresztą też. Instalacja sprowadza się do wyklikania aplikacji w zakładce Apps i wskazania datasetów na dane – bez ręcznego pisania docker-compose.yml. Tu nie ma żadnej filozofii.

Immich – czyli Google Photos u siebie

Zrzuty ekranu Immich: oś czasu ze zdjęciami w przeglądarce oraz aplikacja mobilna
Immich w wersji www i mobilnej (źródło: repozytorium immich-app/immich)

Immich wygląda i działa jak Google Photos – i to jest jego największa zaleta. Kto korzystał z aplikacji Google, ten odnajdzie się tu bez instrukcji – a to ważne, jeśli z biblioteki ma korzystać cała rodzina 🙂

Co mi się w nim najbardziej podoba:

  • instalacja z Apps w TrueNAS Scale – kilka kliknięć, wskazanie datasetu na zdjęcia i bazę danych i gotowe
  • automatyczna indeksacja – po wrzuceniu zdjęć Immich sam generuje miniatury, czyta metadane i odpala uczenie maszynowe. Przy dużej bibliotece pierwsze skanowanie trochę potrwa, ale robi się je raz, a potem nowe zdjęcia są przetwarzane na bieżąco
  • rozpoznawanie twarzy – Immich grupuje zdjęcia według osób, wystarczy nadać im imiona. Potem wyszukanie wszystkich zdjęć z babcią to jedno kliknięcie. A można też szukać kilku osób naraz – np. zdjęć, na których jest 2 konkretnych dzieci
  • wyszukiwanie kontekstowe – wpisujemy „pies na plaży” albo „tort urodzinowy” i Immich znajduje pasujące zdjęcia, nawet jeśli nikt ich nigdy nie opisał. Domyślny model rozumie po angielsku, ale w ustawieniach można go zmienić na wielojęzyczny i szukać po polsku
  • geolokalizacja z danych EXIF – telefony zapisują w zdjęciach współrzędne GPS, a Immich pokazuje je na mapie i zamienia na nazwy miejscowości. Wystarczy wpisać nazwę miejscowości, żeby zobaczyć wszystkie zdjęcia z danego wyjazdu
  • albumy – również współdzielone z innymi użytkownikami albo udostępniane linkiem, np. rodzinie
  • wyszukiwanie duplikatów – w zakładce narzędzi Immich pokazuje zdjęcia podobne do siebie i pozwala zostawić tylko najlepszą wersję. Przy archiwum kopiowanym latami z kilku telefonów to strzał w dziesiątkę
  • aplikacja mobilna (iOS i Android) – automatycznie wysyła nowe zdjęcia z telefonu na serwer, także w tle. Czyli backup dzieje się sam, bez pamiętania o podpinaniu telefonu do komputera

Zrzutu ekranu z rozpoznanymi twarzami nie pokażę – to akurat są dane, które zostają w domu 🙂 Pokażę za to mapę:

Mapa Europy w Immich z liczbami zdjęć pogrupowanych według miejsc: m.in. Islandia, Norwegia, Polska, okolice Tatr i północne Włochy
Mapa w Immich – zdjęcia pogrupowane według miejsc, w których zostały zrobione

Wystarczyło zaimportować zdjęcia, a Immich sam rozłożył je na mapie na podstawie danych EXIF – Islandia, Norwegia, Włochy… Klikamy w punkt na mapie i mamy wszystkie zdjęcia z tego miejsca.

Jeśli mamy już archiwum zdjęć na NASie, to nie musimy go nigdzie przenosić – Immich obsługuje tzw. external libraries, czyli katalogi tylko do odczytu, które indeksuje w miejscu. Można też wrzucić wszystko przez przeglądarkę albo narzędziem CLI.

Kto chce się pobawić przed instalacją – jest demo online (login: demo@immich.app, hasło: demo).

Stash – czyli porządek w filmach

Interfejs Stash: siatka miniatur filmów z panelem filtrów
Interfejs Stash (źródło: repozytorium stashapp/stash)

Uczciwie trzeba powiedzieć jedno – Stash wyrósł ze społeczności, która porządkowała kolekcje filmów… powiedzmy, nie dla dzieci. Widać to po nazewnictwie w interfejsie („Performers”, „Studios”) i po wbudowanej integracji z bazami metadanych typu StashDB. Ktoś może się zdziwić, ale nie ma się co zrażać – pod spodem to po prostu bardzo dobry organizer wideo, a te elementy, których nie potrzebujemy, zwyczajnie pomijamy. Do domowych filmów z wakacji sprawdza się świetnie.

Co mnie w nim przekonało:

  • instalacja z Apps w TrueNAS Scale – dokładnie tak samo jak Immich
  • podmontowanie katalogów bez przenoszenia plików – wskazujemy Stashowi katalogi z filmami, a on je skanuje i indeksuje w miejscu. Struktura folderów na NASie zostaje taka, jaka była – i to dla mnie bardzo ważne, bo te same pliki są dostępne też np. przez udział SMB
  • generowanie podglądów – miniatury, krótkie podglądy wideo po najechaniu myszką, a nawet „sprite” do przewijania. Dzięki temu nie trzeba odpalać filmu, żeby wiedzieć, co na nim jest
  • tagi, grupy i własne opisy – każdy film możemy otagować, ocenić, opisać, dodać datę, połączyć w grupy. Tagi mogą być hierarchiczne (np. lokalizacja → Islandia), a w filmie można dodać znaczniki (markers) na konkretnej minucie
  • edycja hurtowa – zaznaczamy kilkadziesiąt filmów i dodajemy im te same tagi za jednym razem

No i najważniejsze – filtrowanie. Tu Stash wygrywa wszystko, co widziałem. Filtry można łączyć ze sobą, a gotowy zestaw zapisać na później. Kilka przykładów:

  • długość filmu krótsza niż 5 sekund
  • tagi zawierające Norwegia i rower, ale nie koncert
  • ścieżka pliku zawierająca 2019 (przydaje się, gdy foldery są nazwane latami)
  • rozdzielczość co najmniej 1080p
  • rozmiar pliku większy niż 2 GB (szukanie „pożeraczy miejsca”)
  • ocena co najmniej 4 gwiazdki – czyli „best of” do pokazania rodzinie
  • flaga Organized niezaznaczona – czyli lista filmów, których jeszcze nie opisałem

Dlaczego 2 programy, a nie 1?

Oba programy obsługują i zdjęcia i filmy, więc teoretycznie wystarczyłby 1. Ja sobie jednak je podzieliłem: Immich do zdjęć, Stash do filmów.

O ile do zdjęć nie ma nic lepszego od Immicha – rozpoznawanie twarzy, mapa, aplikacja mobilna – o tyle przy filmach brakowało mi w nim narzędzi do porządkowania. Z kolei Stash ze zdjęciami sobie poradzi, ale bez backupu z telefonu i bez rozpoznawania twarzy to tylko połowa zabawy. Każdy z nich robi więc to, w czym jest najlepszy.

Sam import filmów do Stasha jest banalny – w ustawieniach aplikacji podmontowuję kolejny katalog z dysku NAS, a Stash go skanuje i indeksuje. Pliki zostają tam, gdzie były, a ja dokładam do biblioteki kolejne zbiory w swoim tempie.

Stash w praktyce – sprzątanie archiwum

Kto ma dzieci i telefon, ten wie, ile w galerii jest filmików trwających sekundę – kieszeń, podłoga, przypadkowe przytrzymanie przycisku… Takie „śmieci” zwykle nikomu do niczego się nie przydadzą, a przy przeglądaniu archiwum skutecznie przeszkadzają.

W Stashu poradziłem sobie z tym raz dwa:

  1. Ustawiamy filtr: Duration mniejsze niż 5 sekund.
  2. Przeglądamy wyniki (podglądy po najechaniu myszką bardzo pomagają) i odznaczamy te, które jednak warto zostawić.
  3. Zaznaczamy resztę, wybieramy Delete i zaznaczamy opcję usunięcia również plików z dysku.

Dokładnie nie liczyłem, ale w ten sposób zniknęło kilkaset takich filmików. Bez skryptów, bez szukania po folderach.

Tylko uwaga – usunięcie razem z plikami jest nieodwracalne (no chyba, że mamy snapshoty w TrueNAS, a warto mieć). Najpierw sprawdzamy, co jest w wynikach, potem klikamy.

Druga rzecz to tagowanie. Ja na razie stosuję 3 rodzaje tagów:

  • lokalizacja – np. Islandia, Norwegia, Włochy
  • aktywność – np. paintball, rower, koncert
  • osoby – po prostu imiona, np. Maciek, Weronika

Możliwość opisania filmów hurtem, wieloma tagami naraz – np. zaznaczam wszystkie filmy z jednego wyjazdu i dodaję im lokalizację i imiona osób – sprawia, że potem nawet wielkie archiwum przeszukuje się w kilka sekund. Szukam rowerowych filmów z Norwegii? 2 tagi w filtrze i gotowe.

Czy Stash zrobi wszystko za nas?

No nie. Trzeba to powiedzieć wprost – o ile Immich większość pracy robi sam (twarze, miejsca, duplikaty), o tyle w Stashu to my jesteśmy tym „uczeniem maszynowym”. Ktoś musi te filmy przejrzeć, otagować i opisać. Przy kilku latach nagrań to jest praca na wiele wieczorów.

Dobra wiadomość jest taka, że największy efekt widać od razu. Ja dopiero zacząłem, ale dosłownie w 1 wieczór udało się zrobić całkiem sporo: instalacja aplikacji, indeksacja plików, odsianie śmieci i wstępne otagowanie całych zbiorów – hurtem, katalog po katalogu. Dokładniejsze opisywanie pojedynczych filmów to już proces na dłużej.

Ale jeśli raz to zrobimy i potem utrzymamy ustalony porządek – nowe filmy opisujemy na bieżąco, a nie raz na rok – to wyszukanie konkretnego filmu jest dużo szybsze i prostsze. Zamiast przeklikiwać foldery, wpisuję 2 tagi i mam to, czego szukam. Tylko tyle i aż tyle.

Zatem czy warto?

Dla mnie zdecydowanie tak. Sam backup to tylko połowa sukcesu – zdjęcia i filmy, których nie da się znaleźć, są trochę jak pudło ze zdjęciami na strychu: niby są, ale nikt do nich nie zagląda. Immich i Stash zmieniły moje archiwum w coś, w czym da się wreszcie coś znaleźć – a wszystko to na własnym serwerze, bez abonamentu i bez wysyłania zdjęć dzieci do chmury.

Trzeba tylko pamiętać, że to wciąż jest self-hosting – czyli aktualizacje, kopie zapasowe bazy danych i od czasu do czasu jakaś zabawa przy konfiguracji spadają na nas. A NAS z jedną kopią danych to nadal nie jest backup w rozumieniu zasady 3-2-1 – ale to już temat na inny wpis…

Co dalej?

Plan jest prosty – dodawać kolejne katalogi ze zdjęciami i filmami, bo to, co mam teraz, to tylko wierzchołek góry lodowej. W Stashu chcę też zacząć tworzyć grupy filmów – np. wszystkie nagrania z jednego wyjazdu w jednym miejscu – żeby nawigacja po bibliotece była jeszcze łatwiejsza. Jak archiwum urośnie, może opiszę, jak oba programy radzą sobie przy większej skali.

A jak Wy ogarniacie swoje zdjęcia i filmy? Może korzystacie z czegoś, co pominąłem – dajcie znać w komentarzach, chętnie sprawdzę 🙂

Komentarze

Ładowanie komentarzy…

Dodaj komentarz