Table of Contents

Immich - Przewodnik na start

Immich to samodzielnie hostowana platforma do zarządzania zdjęciami i filmami stanowiąca alternatywę dla Google Photos, skoncentrowaną na prywatności. Oferuje automatyczne tworzenie kopii zapasowych z urządzeń mobilnych, rozpoznawanie twarzy, inteligentne wyszukiwanie oraz współdzielone albumy. Wszystko działa na Twoim serwerze za pomocą Docker Compose, zapewniając Ci pełną kontrolę nad danymi.


Krok 1 – Sprawdź, czy Immich działa

Adres IP serwera oraz hasło użytkownika root znajdziesz w sekcji Server Information na karcie Overview swojego serwera w panelu klienta. Immich uruchamia się automatycznie po starcie serwera. Otwórz przeglądarkę i przejdź pod adres:

http://your.server.ip:2283

Powinna wyświetlić się strona rejestracji Immich. Jeśli strona się nie ładuje, odczekaj 1-2 minuty, aż wszystkie kontenery zostaną uruchomione.

Przy pierwszym uruchomieniu wypełnij formularz, aby utworzyć konto administratora:

  • Email – Twój adres e-mail (będzie używany jako login)
  • Password – wybierz silne hasło
  • First Name oraz Last Name

Kliknij Sign Up, aby utworzyć konto. Po zakończeniu rejestracji możliwość tworzenia nowych kont zostanie wyłączona. Dodatkowych użytkowników będzie mógł tworzyć wyłącznie administrator z poziomu panelu Administration.

Jeżeli serwer znajduje się za routerem VyOS w sieci prywatnej, połącz się przez VPN i uzyskaj dostęp do Immich za pomocą prywatnego adresu IP serwera (zalecane dla usług prywatnych) lub skonfiguruj przekierowanie portów (22 dla SSH, 2283 dla interfejsu WWW Immich oraz 80/443, jeśli konfigurujesz domenę z certyfikatem SSL).


Krok 2 – Zainstaluj aplikację mobilną (opcjonalnie)

Immich oferuje aplikacje mobilne umożliwiające automatyczne tworzenie kopii zapasowych zdjęć i filmów:

  • iOS – pobierz Immich z App Store
  • Android – pobierz Immich z Google Play lub F-Droid

W aplikacji wpisz adres URL swojego serwera i zaloguj się na utworzone wcześniej konto:

http://your.server.ip:2283

W ustawieniach aplikacji włącz Background Backup, aby nowe zdjęcia i filmy były automatycznie przesyłane na serwer.


Krok 3 – Skonfiguruj domenę i SSL (opcjonalnie)

Aby uzyskać dostęp do Immich przez własną domenę z wykorzystaniem HTTPS:

  1. Utwórz rekord A w ustawieniach DNS swojej domeny, wskazujący na adres IP serwera.
  2. Poczekaj na propagację zmian DNS (zwykle kilka minut).
  3. Połącz się przez SSH i skonfiguruj Nginx jako reverse proxy z certyfikatem Let’s Encrypt:
ssh root@your.server.ip apt update && apt install -y nginx certbot python3-certbot-nginx cat > /etc/nginx/sites-available/immich << 'EOF’ server { listen 80; server_name your-domain.com; client_max_body_size 50000M; location / { proxy_pass http://127.0.0.1:2283; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade’; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; } } EOF ln -s /etc/nginx/sites-available/immich /etc/nginx/sites-enabled/ rm -f /etc/nginx/sites-enabled/default nginx -t && systemctl reload nginx certbot –nginx -d your-domain.com

Zastąp your-domain.com własną domeną. Certbot automatycznie skonfiguruje certyfikat SSL oraz odnowienia. Dyrektywa client_max_body_size umożliwia przesyłanie dużych plików wideo. Po zakończeniu konfiguracji zaktualizuj adres serwera w aplikacji mobilnej na https://your-domain.com.


Po instalacji

Fail2Ban – Ochrona przed atakami brute-force

Na serwerze jest już skonfigurowany Fail2Ban, który chroni usługę SSH przed atakami brute-force.

Reguła Maksymalna liczba prób Czas blokady
SSH 5 nieudanych logowań 10 minut

Przydatne polecenia:

# Sprawdź zablokowane adresy IP fail2ban-client status sshd # Odblokuj adres IP fail2ban-client set sshd unbanip 1.2.3.4

Jeżeli przypadkowo zablokujesz sobie dostęp, połącz się z serwerem przez konsolę VNC dostępną w panelu klienta i odblokuj swój adres IP.

Zarządzanie przestrzenią dyskową

Zdjęcia i filmy są przechowywane w katalogu /opt/immich/upload/. Typowe zdjęcie z telefonu zajmuje 3-5 MB, natomiast filmy są znacznie większe. Immich tworzy również miniatury oraz dane wykorzystywane przez funkcje AI (około 20% dodatkowego miejsca). Aby sprawdzić wykorzystanie dysku:

df -h / du -sh /opt/immich/upload/

Zarządzanie usługą

Immich działa jako usługa systemd wykorzystująca Docker Compose:

# Sprawdź status kontenerów cd /opt/immich && docker compose ps # Wyświetl logi cd /opt/immich && docker compose logs -f # Uruchom ponownie Immich systemctl restart immich

Aktualizacje

Aby zaktualizować Immich do najnowszej wersji:

cd /opt/immich curl -fsSL https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml -o docker-compose.yml docker compose pull docker compose down && docker compose up -d

Przed wykonaniem aktualizacji zawsze sprawdź informacje o wydaniu, aby upewnić się, że nie wprowadzono zmian wymagających dodatkowych działań.

Kopie zapasowe

Tworząc kopię zapasową Immich, należy zabezpieczyć dwa elementy: katalog z plikami oraz bazę danych:

# Kopia zapasowa bazy danych docker exec -t immich_postgres pg_dumpall -c -U postgres > /opt/immich/db_backup.sql # Przywrócenie bazy danych (w razie potrzeby) cat /opt/immich/db_backup.sql | docker exec -i immich_postgres psql -U postgres

Zainstalowane oprogramowanie

Komponent Wersja
Ubuntu 24.04 LTS
Docker Najnowsza
Immich Najnowsza
PostgreSQL 14 (Docker)
Valkey (Redis) 9 (Docker)
Fail2Ban 1.0

Rozwiązywanie problemów

Problem Rozwiązanie
Interfejs WWW nie ładuje się po pierwszym uruchomieniu Odczekaj 1-2 minuty, aż wszystkie kontenery zostaną uruchomione. Sprawdź ich status: cd /opt/immich && docker compose ps
Kontenery ciągle się restartują Sprawdź logi: cd /opt/immich && docker compose logs –tail 50. Upewnij się, że serwer ma co najmniej 4 GB pamięci RAM
Aplikacja mobilna nie może połączyć się z serwerem Sprawdź, czy adres serwera zawiera numer portu: http://your.server.ip:2283
Brak wolnego miejsca na dysku Wyczyść pamięć podręczną Dockera: docker system prune -a. W razie potrzeby zwiększ rozmiar dysku w panelu klienta
Adres IP został zablokowany przez Fail2Ban Skorzystaj z konsoli VNC w panelu klienta, aby odblokować swój adres IP
Zapomniane hasło użytkownika root Użyj konsoli VNC w panelu klienta, aby zresetować hasło