Chcesz samodzielnie hostowane rozwiązanie do przechowywania zdjęć jako alternatywę dla Zdjęć Google lub Apple iCloud? Oto jak zainstalować Immich na Raspberry Pi.

Zdjęcia Google to dominujące rozwiązanie do przechowywania i tworzenia kopii zapasowych zdjęć, które bez wysiłku przenosi zdjęcia z telefonu do chmury. Ale jeśli nie chcesz udostępniać Google swoich osobistych zdjęć, istnieją alternatywy.

Chociaż istnieje wiele samoobsługowych rozwiązań, które można hostować na Raspberry Pi, Immich przewyższa większość konkurentów. Oferuje uczenie maszynowe, wielu użytkowników, automatyczną klasyfikację obrazów, rozpoznawanie twarzy, natywne aplikacje na Androida i iOS oraz wiele innych funkcji.

Dlaczego warto zainstalować Immich na Raspberry Pi?

Fotografie przedstawiają części naszego życia, które naszym zdaniem warto zachować w pamięci i które będziemy chcieli przywołać w późniejszym terminie. To pamiątki dobrych czasów, wspaniałych posiłków, wielkich dni i świąt.

W dawnych czasach trzeba było nosić ze sobą kliszę lub aparat cyfrowy, aby uwiecznić takie okazje, a następnie wydrukować je lub ręcznie przenieść pliki na komputer.

Obecnie prawie każdy nosi telefon z dwoma lub więcej wbudowanymi aparatami i najlepsze aparaty telefoniczne są wystarczająco dobre, aby mogły być używane przez profesjonalnych fotografów.

Automatyczne przesyłanie

W większości przypadków zrobione zdjęcie jest przesyłane do Google lub Apple i można uzyskać do niego dostęp za pośrednictwem dowolnego urządzenia z interfejsem internetowym lub aplikacją. Istnieją jednak dobre powody, dla których możesz nie chcieć polegać na usługach zewnętrznych w zakresie hostowania Twoich zdjęć.

Poza tym usługi te są płatne po przekroczeniu progu przestrzeni dyskowej — obecnie 15 GB Google i 5 GB dla Apple — nigdy nie możesz być pewien, że firmy nie przeglądają Twojego zdjęcia archiwum lub używając twoich obrazów do trenowania generatywnych AI.

Przechowywanie zdjęć w chmurze to coś więcej niż tylko przechowywanie zdjęć i uzyskiwanie do nich dostępu, a w ostatnich latach przyzwyczailiśmy się automatycznie generowane albumy, rozpoznawanie twarzy, osie czasu, identyfikacja obiektów, przypomnienia o ważnych momentach i możliwość wyszukiwania oś czasu. Oczywiście nie mogło zabraknąć również atrakcyjnych aplikacji mobilnych, za pomocą których można przesyłać zdjęcia do chmury

Immich to samoobsługowe oprogramowanie typu open source, które zrobi to wszystko i jeszcze więcej. Oto jak zainstalować Immich na swoim Raspberry Pi. Przed kontynuowaniem powinieneś pobierz swoje zdjęcia z Google, Lub wyeksportuj swoje obrazy z iCloud.

Jak zainstalować Immicha na Raspberry Pi

Zanim zaczniesz, musisz skonfiguruj Raspberry Pi jako serwer WWW. Chociaż nie potrzebujesz koniecznie MariaDB ani PHP do zainstalowania Immicha, możesz je uznać za przydatne w innych projektach samoobsługowych. Powinieneś także ręcznie zainstaluj najnowszą wersję Docker Compose.

tworzyć katalogi immich i pobierać pliki

Gdy Twoje Pi będzie działać jako podstawowy serwer WWW, utwórz nowy katalog dla Immicha, a następnie przejdź do niego:

mkdir ~/immich && cd ~/immirozdz 

Będziesz także musiał utworzyć katalog dla przesłanych plików

mkdir immich-uploads

Będziesz potrzebować bezwzględnej ścieżki do tego katalogu później, więc przejdź do niego i użyj pwd polecenie, aby znaleźć dokładnie to, gdzie jest w twoim systemie plików:

płyta CD przesyłanie immich
pwd

Zanotuj dane wyjściowe i zachowaj je w bezpiecznym miejscu. Teraz przejdź o wyższy poziom katalogu i użyj wget aby pobrać plik Immich docker-compose.yml plik i plik środowiska, wprowadzając oddzielnie te polecenia:

płyta CD..
wget 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

The .env environment zawiera zmienne, które należy zmienić przed przełączeniem instancji Immich do trybu online. Użyj edytora tekstu nano, aby otworzyć plik:

nano.env

Ustaw lokalizację przesyłania na utworzony wcześniej katalog przesyłania. Jest to jedyna konieczna zmiana, którą musisz wprowadzić w pliku, ale istnieją inne opcje konfiguracji, które możesz określić, jeśli chcesz.

Jeśli chcesz, aby Immich mógł oznaczać swoje zdjęcia nazwą lokalizacji, w której zostały zrobione, przewiń w dół do Geokodowanie wsteczne sekcję i odkomentuj Geokodowanie wsteczne I REVERSE_GEOCODING_PRECISION linie.

Immich oferuje cztery poziomy precyzji. 3 jest najdokładniejszy i wskaże miejscowości liczące ponad 500 mieszkańców. Ta precyzja wiąże się z kosztem pamięci i ustawieniem 3 będzie wymagać 200 MB pamięci RAM. Dla porównania, ustawienie wartości na 0 wymieni miasta powyżej 50 000 mieszkańców i wyssie zaledwie 40 MB.

Zmienić PUBLIC_LOGIN_PAGE_MESSAGE do tego, co chcesz, aby użytkownicy zobaczyli przed zalogowaniem się na stronie.

Gdy jesteś zadowolony ze swoich zmian, Zapisz i wyjdź z nano za pomocą Ctrl + O Następnie Ctrl + X.

Następujące polecenie uruchomi Docker Compose w trybie odłączonym, pobierze niezbędne obrazy i skonfiguruje kontenery, które Immich musi uruchomić.

tworzenie dokerów -d

Proces zajmie kilka minut, w tym czasie możesz sprawdź niesamowite podcasty w swoim terminalu. Gdy Immich przejdzie do trybu online, odwiedź aplikację internetową w przeglądarce pod adresem twój-lokalny-adres-ip: 2283.

Kliknij Zaczynaj, a następnie utwórz użytkownika administratora. Twoja instancja Immich zostanie ostatecznie udostępniona w sieci, więc pamiętaj, aby użyć silnego, niemożliwego do odgadnięcia hasła, a następnie kliknij Zapisać się. Konieczne będzie ponowne zalogowanie się za pomocą adresu e-mail i hasła.

Prześlij swoje zdjęcia do Immicha

Jeśli nie zaczynasz całkowicie od zera, prawdopodobnie chcesz przesłać istniejące archiwum zdjęć do nowej instancji Immich. Chociaż możesz kliknąć Wgrywać w prawym górnym rogu interfejsu internetowego, a następnie wybierz obrazy ręcznie, ta metoda nie jest praktyczna, jeśli masz tysiące zdjęć w wielogigabajtowym archiwum.

Deweloperzy Immich stworzyli pomocne narzędzie CLI, którego można użyć do masowego przesyłania zdjęć do Immich. Chociaż kuszące jest użycie bezpiecznego kopiowania (SCP) do przesyłania plików, Immich ich nie rozpozna.

Będziesz musiał zainstalować narzędzie do przesyłania CLI w systemie lokalnym, a nie w samym Pi. Ale najpierw musisz mieć Node Package Manager i Node.js w wersji 16 lub nowszej. Możesz zainstaluj npm i Node.js w systemie Windows, a nawet łatwiej zainstaluj npm i Node.js w systemie Linux.

Wróć do aplikacji internetowej, kliknij swoją ikonę użytkownika lub inicjały w prawym górnym rogu ekranu, a następnie kliknij Ustawienia konta > Klucze API > Nowy klucz API.

Nadaj klawiszowi nazwę, a następnie naciśnij Tworzyć. Immich wygeneruje nowy klucz API — zanotuj go.

W oknie terminala lub w wierszu polecenia przejdź do katalogu, w którym przechowywane są obrazy, i wprowadź:

ładowanie immich --key wygenerowany-klucz-API --server http://your-pi-local-ip-address: 2283/api --rekurencyjnie .

Uderzyć y gdy zostaniesz zapytany, czy chcesz rozpocząć proces przesyłania, usiądź wygodnie, ponieważ może to chwilę potrwać. Dla porównania, załadowanie naszego 82-gigabajtowego archiwum zawierającego ponad 40 000 obrazów zajęło około sześciu godzin, ale to tylko ułamek pracy.

Po zakończeniu przesyłania Immich przetworzy Twoje zdjęcia, wyodrębni metadane, oznaczy twarze i uruchomi algorytmy rozpoznawania obiektów. Podczas tego procesu interfejs sieciowy będzie mniej responsywny, a obrazy mogą pojawiać się w niewłaściwej kolejności. W przypadku naszego archiwum proces ten trwał około czterech dni na 8 GB Raspberry Pi 4B — chociaż nie miał zauważalnego wpływu na wiele innych usług, które zwykle hostujemy.

Możesz śledzić postępy za pośrednictwem interfejsu internetowego, klikając Administracja > Praca. Immich będzie przetwarzać wiele zadań jednocześnie; aby zmienić te wartości i potencjalnie przyspieszyć proces, przejdź do Administracja > Ustawienia > Ustawienia zadaniai dostosuj współbieżność do swoich upodobań.

Udostępnij Immichowi sieć

Będziesz musiał utworzyć plik konfiguracyjny Apache dla swojej instancji Immich:

płyta CD /etc/apache2/sites-available && sudo nano immich.conf

W nowym pliku wklej następujące elementy:

<Wirtualny Host *:80>
Nazwa serweranazwa-twojej-domeny.tld
ProxyPass / http://127.0.0.1:2283/
ProxyPassReverse / http:/127.0.0.1:2283/
ProxyPreserveHost włączony
Wirtualny Host>

Zapisz i wyjdź z nano za pomocą Ctrl + O Następnie Ctrl + X. Włącz plik conf, a następnie zrestartuj Apache:

Sudoa2ensiteimmich.konf && SudopracaApache2ponownie uruchomić

Użyj narzędzia Certbot do pobierania i wdrażania certyfikatów i kluczy TLS:

sudo certbot

Wybierz nazwę swojej domeny z listy i naciśnij Wchodzić. Uruchom ponownie Apache ponownie za pomocą:

Sudo ponowne uruchomienie usługi Apache2

Możesz teraz uzyskać dostęp do aplikacji internetowej Immich przy użyciu nazwy domeny.

Korzystaj z aplikacji mobilnych z Immich

4 obrazy

Jeśli używasz Immich do powielania funkcjonalności ofert komercyjnych, potrzebujesz aplikacji towarzyszącej na telefonie. Immich jest dostępny na Androida i iOS i obsługuje przesyłanie i przeglądanie obrazów i filmów, szybką nawigację i automatyczne tworzenie kopii zapasowych, wyszukiwanie i nie tylko.

Aby rozpocząć, wprowadź swój adres URL Immich, w tym https:// prefiks i zaloguj się przy użyciu poświadczeń administratora. Aby aplikacja mogła wyświetlać Twoje zdjęcia i filmy, musisz udzielić pozwolenia.

Interfejs jest prosty i intuicyjny i powinieneś być w stanie poruszać się po nim bez żadnej pomocy. Kliknij ikonę chmury w prawym górnym rogu i wybierz lokalne albumy, których kopię zapasową chcesz utworzyć, a także aktywację automatycznego tworzenia kopii zapasowych na pierwszym planie iw tle.

Pobierać: Immich za iOS | Android (Sklep Play) | Android (F-Droid)

Immich to praca w toku

Prace nad Immich trwają cały czas i pomimo tego, że prace nad projektem rozpoczną się dopiero w 2022 roku, jest to bez wątpienia niezwykle kompetentny, samoobsługowy zamiennik iCloud lub Zdjęć Google.

Jeśli wolisz projekt, który jest nieco bardziej dojrzały, zamiast tego rozważ wdrożenie PhotoPrism na swoim Raspberry Pi.