Immich to otwarta, samodzielnie hostowana platforma do zdjęć i filmów. Oferuje aplikację mobilną, automatyczne wysyłanie zdjęć, oś czasu, albumy, mapę, wyszukiwanie i funkcje uczenia maszynowego. Może przypominać prywatne Google Photos, ale serwer oraz dane utrzymujesz samodzielnie.
To daje kontrolę i dużo satysfakcji, ale również odpowiedzialność. Immich nie może być jedynym miejscem przechowywania zdjęć. Awaria dysku, błędna aktualizacja lub pomyłka administratora nie powinny usuwać rodzinnego archiwum.
Cel projektu
Zbudujemy środowisko, w którym:
- Immich działa w maszynie wirtualnej z Linuksem,
- aplikacja mobilna wysyła nowe zdjęcia,
- baza danych znajduje się na lokalnym SSD,
- pliki multimedialne mają odpowiednią przestrzeń,
- serwer jest dostępny najpierw tylko lokalnie,
- baza i oryginalne pliki są regularnie kopiowane,
- przed pełną migracją testujemy odtworzenie.
Wymagania w 2026 roku
Aktualna dokumentacja Immich zaleca Linux lub inny system uniksowy, minimum 6 GB RAM i 2 rdzenie, a dla wygodnej pracy 8 GB RAM i 4 rdzenie. Generowane miniatury oraz transkodowane filmy mogą zwiększyć rozmiar biblioteki średnio o 10–20%.
Projekt wymaga współczesnego polecenia docker compose. Stare docker-compose nie jest już wspierane przez Immich.
Twórcy zalecają pełną maszynę wirtualną przy wirtualizacji. Docker uruchomiony wewnątrz LXC może działać, ale nie jest polecanym środowiskiem dla początkujących i utrudnia uzyskanie pomocy.
Proponowane zasoby VM
System: Debian Stable lub Ubuntu Server LTS
CPU: 4 vCPU
RAM: 8 GB
Dysk systemowy i baza: lokalny SSD
Biblioteka: osobny duży dysk lub prawidłowo zamontowany storage
Sieć: przewodowa 1 Gb/s lub szybsza
Jeśli zaczynasz od zera, projekt pierwszy homelab na używanym mini PC przygotuje host i maszynę z Dockerem.
Zaplanuj miejsce przed instalacją
Immich korzysta między innymi z dwóch ważnych lokalizacji:
UPLOAD_LOCATION— zdjęcia, filmy i generowane pliki,DB_DATA_LOCATION— dane PostgreSQL.
Baza PostgreSQL powinna znajdować się na lokalnym SSD i na systemie plików obsługującym uprawnienia uniksowe. Dokumentacja wyraźnie odradza umieszczanie bazy na udziale sieciowym. Biblioteka zdjęć może zajmować dużo miejsca, więc zaplanuj ją z zapasem oraz uwzględnij miniatury i transkodowanie.
Przykład:
/opt/immich/ pliki Compose i .env
/srv/immich/postgres/ baza na lokalnym SSD
/srv/immich/library/ zdjęcia i filmy
/mnt/backup/immich/ kopia na innym urządzeniu
Nie trzymaj backupu w podkatalogu tej samej biblioteki ani na tym samym SSD.
Instalacja oficjalną metodą Docker Compose
Zaloguj się do przygotowanej maszyny z Linuksem. Zainstaluj Docker Engine i wtyczkę Compose według oficjalnej dokumentacji Dockera.
Następnie utwórz katalog projektu:
mkdir -p /opt/immich
cd /opt/immich
Pobierz aktualne pliki wydania z oficjalnego repozytorium 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.env
Przed uruchomieniem otwórz .env i ustaw co najmniej:
- bezpieczne hasło bazy,
UPLOAD_LOCATION,DB_DATA_LOCATION,- właściwą strefę czasową, jeśli występuje w używanej wersji pliku.
Nie kopiuj gotowego .env z poradnika. Oficjalny przykładowy plik zmienia się wraz z wersjami Immich i jest najlepszym punktem startowym.
Uruchom usługi:
docker compose up -d
Sprawdź stan:
docker compose ps
docker compose logs --tail=100
Interfejs powinien być dostępny lokalnie pod:
http://ADRES-SERWERA:2283
Pierwsze utworzone konto zostaje administratorem. Użyj unikalnego hasła i od razu zapisz je w menedżerze haseł.
Aplikacja mobilna i pierwszy test
Zainstaluj oficjalną aplikację Immich, wpisz lokalny adres serwera i zaloguj się. Na początek wybierz jeden niewielki album testowy zamiast całej biblioteki telefonu.
Sprawdź:
- wysyłanie w tle,
- zachowanie po utracie Wi-Fi,
- duplikaty,
- daty i lokalizacje zdjęć,
- odtwarzanie filmów,
- wykorzystanie miejsca na serwerze,
- czas generowania miniatur.
Dopiero po kilku dniach dołącz większą bibliotekę. Pierwsze indeksowanie i uczenie maszynowe mogą chwilowo mocno obciążyć CPU oraz pamięć.
Dostęp zdalny
Najpierw korzystaj z Immich wyłącznie w sieci lokalnej. Najprostszą bezpieczną drogą do dostępu z telefonu poza domem jest prywatny VPN, na przykład WireGuard lub Tailscale.
Publiczna domena z reverse proxy jest wygodna, ale wymaga poprawnego HTTPS, aktualizacji, ograniczenia dostępu i monitorowania. Nie przekierowuj po prostu portu 2283 z routera do Internetu.
Jeśli udostępniasz usługę innym domownikom, wyjaśnij im, że prywatna chmura działa na Twoim serwerze. Muszą wiedzieć, co stanie się z aplikacją podczas aktualizacji, awarii zasilania albo prac serwisowych.
Backup: pliki i baza są potrzebne razem
Immich przechowuje ścieżki oraz metadane w PostgreSQL. Sama kopia zdjęć nie odtworzy albumów, użytkowników i całego stanu aplikacji. Z kolei kopia bazy bez oryginalnych plików również jest niewystarczająca.
Kompletny backup obejmuje:
- bazę danych Immich,
- całą zawartość
UPLOAD_LOCATION, - pliki
docker-compose.ymli.envprzechowywane bezpiecznie, - kopię na innym urządzeniu,
- drugą kopię najważniejszych zdjęć poza domem.
Immich tworzy automatyczne backupy bazy, ale nie zawierają one zdjęć i filmów. Trzeba kopiować je razem z biblioteką.
Twórcy zalecają strategię 3-2-1. Przy spójnym backupie najlepiej zatrzymać zapis do aplikacji na czas kopiowania. Jeśli nie można tego zrobić, dokumentacja zaleca najpierw kopię bazy, a później plików.
Test odtworzenia
Nie czekaj na awarię.
- Utwórz ręczny backup bazy z panelu administracyjnego.
- Skopiuj bibliotekę na drugi nośnik.
- Postaw małą testową instancję w odizolowanym środowisku.
- Odtwórz bazę i kilka przykładowych plików zgodnie z dokumentacją właściwej wersji.
- Sprawdź albumy, miniatury i oryginały.
- Zapisz datę oraz wynik testu.
Proces odtwarzania zmienia się wraz z rozwojem Immich. Dokumentacja podaje, że mechanizm zmienił się między innymi w wersji 2.5.0, dlatego podczas awarii zawsze wybieraj instrukcję odpowiadającą wersji backupu.
Aktualizacje bez nerwów
Przed aktualizacją:
- przeczytaj informacje o wydaniu,
- sprawdź wolne miejsce,
- wykonaj kopię bazy i biblioteki,
- zapisz obecną wersję,
- upewnij się, że masz czas na test aplikacji.
Typowa aktualizacja Compose wygląda następująco:
docker compose pull
docker compose up -d
Nie uruchamiaj jej automatycznie bez kontroli przy każdej nowej wersji. W przypadku rodzinnego archiwum stabilność jest ważniejsza niż natychmiastowy dostęp do nowej funkcji.
Kiedy Immich ma sens?
Tak, jeśli chcesz mieć kontrolę nad danymi, lubisz self-hosting i akceptujesz odpowiedzialność za serwer oraz backup.
Nie, jeśli nie chcesz zajmować się aktualizacjami, monitoringiem i odtwarzaniem danych. Wtedy usługa chmurowa może być rozsądniejsza — nadal warto jednak mieć własną niezależną kopię zdjęć.
Najlepszy wariant nie musi oznaczać całkowitego porzucenia Google Photos lub iCloud pierwszego dnia. Możesz uruchomić Immich równolegle, przetestować go przez kilka miesięcy i dopiero później zdecydować, jaką rolę ma pełnić.