Immich: Google Photos alternatyva namuose

Kas tas Immich ir kodėl apie jį verta kalbėti?

Jei bent kartą esi pagalvojęs, kad Google Photos saugo tavo nuotraukas kažkur debesyse ir tu tiksliai nežinai nei kur, nei kaip, nei kam jos prieinamos – esi tinkamoje vietoje. Immich yra atvirojo kodo nuotraukų valdymo sprendimas, kurį gali paleisti ant savo serverio, savo namuose, savo taisyklėmis. Jokių prenumeratų, jokių algoritmų, kurie nusprendžia, ką tau rodyti, jokio jausmo, kad esi produktas.

Projektas pradėtas 2022 metais ir per gana trumpą laiką tapo vienu populiariausių self-hosted sprendimų nuotraukoms. GitHub repozitorijoje šiuo metu daugiau nei 50 tūkstančių žvaigždučių – tai rimtas skaičius, rodantis, kad žmonės tikrai naudoja ir vertina šį įrankį, o ne tik pažymi kaip „įdomu, gal kada nors išbandysiu”.

Bet prieš kalbant apie diegimą ir konfigūraciją, verta suprasti, kodėl apskritai verta vargintis su savomis infrastruktūromis, kai Google Photos ar Apple Photos veikia puikiai ir nereikalauja jokių pastangų.

Problema su debesų paslaugomis, kurią dažnai ignoruojame

Google Photos 2021 metais panaikino nemokamą neribotą saugyklą. Tai buvo gana skaudus smūgis daugeliui vartotojų, kurie metų metus kraustė nuotraukas tikėdamiesi, kad tai tęsis amžinai. Dabar nemokama riba – 15 GB, o toliau reikia mokėti už Google One prenumeratą. Tai nėra astronominis mokestis, bet tai principas.

Dar svarbiau – privatumas. Kai tavo nuotraukos yra Google serveriuose, Google jas analizuoja. Jie nustato veidus, vietas, objektus. Tai leidžia jiems siūlyti paieškos funkcijas, bet tuo pačiu reiškia, kad tavo asmeniniai momentai yra mašininio mokymosi duomenų bazės dalis. Daugeliui žmonių tai nesvarbu, bet kai pradedi galvoti apie vaikų nuotraukas, šeimos momentus, privačius įvykius – klausimas tampa kitoks.

Ir dar vienas dalykas, apie kurį retai kalbama: vendor lock-in. Jei Google nusprendžia uždaryti Photos paslaugą (o jie yra uždaryję ne vieną populiarią paslaugą), tu turi ribotą laiką išsikrauti savo duomenis. Takeout veikia, bet tai nėra patogus procesas, ypač kai kalbame apie šimtus gigabaitų.

Immich sprendžia visas šias problemas iš karto – bet ateina su savo iššūkiais, kuriuos reikia sąžiningai aptarti.

Ko reikia, kad Immich veiktų namuose

Čia prasideda techninė dalis, bet nesijaudink – ji nėra tokia sudėtinga, kaip gali atrodyti. Immich veikia Docker konteineriuose, todėl pagrindinė sąlyga yra turėti mašiną, kuri gali paleisti Docker.

Minimalūs reikalavimai:

  • RAM: bent 4 GB, rekomenduojama 8 GB ar daugiau
  • Procesorius: bet koks šiuolaikinis x86_64 arba ARM64 procesorius
  • Saugykla: priklauso nuo tavo nuotraukų kiekio – pačiam Immich reikia apie 10 GB, o likusios vietos reikia nuotraukoms
  • OS: Linux (Ubuntu, Debian, bet koks kitas) arba net Windows su WSL2

Praktiškai tai reiškia, kad galima naudoti:

  • Seną kompiuterį, kurį kitaip išmestum
  • Raspberry Pi 4 arba 5 (su 4+ GB RAM)
  • Synology ar QNAP NAS (jei palaiko Docker)
  • Mini PC tipo Beelink ar Minisforum – puikus pasirinkimas, nes jie tylūs, mažai valgo elektros ir yra gana galingi
  • VPS serverį, jei nenori nieko namuose laikyti

Svarbus pastebėjimas dėl Raspberry Pi: jis veiks, bet mašininio mokymosi funkcijos (veido atpažinimas, objektų klasifikavimas) bus lėtos. Jei nori pilno funkcionalumo be laukimo, geriau rinktis x86 architektūrą su bent Celeron ar Pentium lygio procesoriumi.

Diegimas žingsnis po žingsnio – be baimės

Oficiali dokumentacija yra gana gera, bet čia pateikiu supaprastintą versiją, kuri turėtų veikti daugumai žmonių.

Pirma, įsitikink, kad turi įdiegtą Docker ir Docker Compose. Ubuntu atveju:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo apt install docker-compose-plugin

Tada sukurk katalogą Immich failams:

mkdir ~/immich && cd ~/immich

Parsisiųsk oficialų docker-compose.yml failą:

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

Atsidaryk .env failą ir pakeisk keletą svarbių dalykų:

UPLOAD_LOCATION=./library
DB_PASSWORD=sugalvok_stiprų_slaptažodį
IMMICH_VERSION=release

UPLOAD_LOCATION – čia nurodai, kur bus saugomos nuotraukos. Jei turi atskirą diską ar NAS, čia nurodyk kelią į jį, pvz., /mnt/photos.

Paleidimas:

docker compose up -d

Po kelių minučių Immich bus prieinamas per naršyklę adresu http://tavo-serverio-ip:2283. Pirmo paleidimo metu sukuri administratoriaus paskyrą ir viskas – esi pasiruošęs.

Vienas praktinis patarimas: jei planuoji naudoti iš interneto (ne tik namų tinkle), labai rekomenduoju prieš tai sukonfigūruoti reverse proxy (Nginx Proxy Manager arba Traefik) su SSL sertifikatu. Immich neturėtų būti prieinamas internetu be HTTPS.

Funkcijos, dėl kurių Immich tikrai verta dėmesio

Gerai, įdiegei, paleidi, bet ką iš tikrųjų gauni? Čia Immich tikrai nustebina, ypač atsižvelgiant į tai, kad tai atvirojo kodo projektas.

Mobilioji aplikacija yra viena geriausių dalykų. Yra oficialios iOS ir Android programėlės, kurios automatiškai sinchronizuoja nuotraukas iš telefono į tavo serverį. Tai veikia lygiai taip pat kaip Google Photos backup – fone, automatiškai, nepastebint. Galima konfigūruoti, ar sinchronizuoti tik per Wi-Fi, ar ir per mobilų ryšį, ar tik kai telefonas kraunamas.

Veido atpažinimas veikia lokaliai, tavo serveryje. Immich naudoja mašininio mokymosi modelius, kurie identifikuoja veidus nuotraukose ir leidžia juos susieti su žmonėmis. Tai užtrunka laiko (ypač pirmo indeksavimo metu), bet rezultatai yra gana tikslūs.

Paieška pagal turinį – galima ieškoti „šuo paplūdimyje” ir Immich suranda nuotraukas su šunimis paplūdimyje. Tai veikia per CLIP modelį, kuris supranta natūralios kalbos aprašymus. Stebina, kaip gerai tai veikia.

Žemėlapis – jei tavo nuotraukos turi GPS metaduomenis, Immich rodo jas žemėlapyje. Puikus būdas prisiminti, kur buvai.

Albumai ir bendrinimas – galima kurti albumus, bendrinti juos su kitais Immich vartotojais arba generuoti viešas nuorodas konkretiems albumams. Tai naudinga, kai nori parodyti atostogų nuotraukas šeimai, bet nenori duoti prieigos prie viso savo archyvo.

Duplikatų aptikimas – Immich gali rasti dublikatus tavo bibliotekoje. Naudinga, jei per metus sukrovei nuotraukas iš skirtingų šaltinių.

RAW failų palaikymas – fotografams svarbu: Immich palaiko RAW formatus ir gali rodyti jų peržiūras.

Migracija iš Google Photos – kaip tai padaryti protingai

Vienas dažniausių klausimų: kaip perkelti viską iš Google Photos į Immich? Procesas nėra labai sudėtingas, bet reikia šiek tiek kantrybės.

Pirma, eksportuok duomenis iš Google. Eik į takeout.google.com, pasirink tik Google Photos ir pradėk eksportą. Priklausomai nuo kiekio, tai gali užtrukti nuo kelių valandų iki kelių dienų. Google siunčia el. laišką su nuoroda parsisiųsti archyvą.

Problema su Google Takeout eksportu yra ta, kad metaduomenys (datos, vietos) yra atskiruose JSON failuose, o ne įrašyti į pačias nuotraukas. Tai reiškia, kad jei tiesiog importuosi nuotraukas, jos neturės teisingų datų.

Čia į pagalbą ateina įrankis google-photos-exif arba gphotos-takeout-helper. Pastarasis yra Python skriptas, kuris:

  • Perskaito JSON metaduomenis
  • Įrašo juos tiesiai į nuotraukų EXIF duomenis
  • Sutvarko failų struktūrą

Naudojimas:

pip install gphotos-takeout-helper
gphotos-takeout-helper -i /kelias/į/takeout -o /kelias/į/output

Po šio žingsnio turėsi tvarkingą nuotraukų kolekciją su teisingais metaduomenimis, kurią galima importuoti į Immich.

Importavimui Immich siūlo kelis būdus. Paprasčiausias – per web sąsają tiesiog įkelti failus. Bet jei kalbame apie dešimtis gigabaitų, geriau naudoti CLI įrankį arba tiesiog nukopijuoti failus tiesiai į Immich bibliotekos katalogą ir naudoti „External Library” funkciją.

Praktinis patarimas: neištrink Google Photos iš karto po migracijos. Palaikyk abu sprendimus lygiagrečiai bent mėnesį, kol įsitikinsi, kad viskas perkelta teisingai ir Immich veikia stabiliai.

Atsarginės kopijos – nes Immich nėra atsarginė kopija

Čia labai svarbus momentas, kurį daugelis žmonių praleido. Immich nėra atsarginė kopija. Tai nuotraukų valdymo sistema. Jei tavo serverio diskas sugenda, tu prarandi viską.

Todėl reikia mąstyti pagal 3-2-1 principą:

  • 3 kopijos duomenų
  • 2 skirtingose laikmenose
  • 1 kopija kitoje fizinėje vietoje

Praktiškai tai gali atrodyti taip:

  • Originalai Immich serveryje (1 kopija)
  • Automatinis backup į kitą diską tame pačiame serveryje arba NAS (2 kopija)
  • Backup į debesį – Backblaze B2, Wasabi ar net tą patį Google Photos (3 kopija)

Backblaze B2 yra puikus pasirinkimas kaip offsite backup – kainos labai mažos (apie $6 už TB per mėnesį), ir jie turi gerus įrankius automatizavimui. Galima naudoti rclone, kuris puikiai integruojasi su Immich bibliotekos katalogo struktūra.

Paprastas rclone komandos pavyzdys:

rclone sync /kelias/į/immich/library backblaze:mano-nuotraukos-bucket --progress

Tai galima automatizuoti per cron job, kad veiktų kiekvieną naktį.

Taip pat svarbu daryti Immich duomenų bazės backup. Duomenų bazė saugo visą informaciją apie albumus, veidus, žymas ir kt. Be jos net turėdamas visas nuotraukas prarastum daug darbo. Oficiali dokumentacija turi konkrečius nurodymus, kaip tai daryti.

Kai Immich tampa tikru namų foto centru

Kai viskas sukonfigūruota ir veikia, Immich gali tapti kažkuo daugiau nei tik nuotraukų saugykla. Čia keletas idėjų, kaip išnaudoti maksimaliai.

Jei turi šeimą, galima sukurti atskiras paskyras kiekvienam nariui. Kiekvienas turi savo biblioteką, bet galima dalintis albumais tarpusavyje. Tai reiškia, kad kai žmona nufotografuoja vaiko gimtadienį, ji gali bendrinti albumą su visais šeimos nariais – ir visi mato nuotraukas savo Immich paskyroje.

Integravimas su skaitmeniniais nuotraukų rėmeliais – tai vienas mano mėgstamiausių use case’ų. Tokios programėlės kaip Immich Frame arba Photoframe gali rodyti nuotraukas iš tavo Immich bibliotekos ant Raspberry Pi prijungto prie televizoriaus ar monitoriaus. Namų nuotraukų rėmelis, rodantis tavo paties nuotraukas iš tavo paties serverio.

Taip pat verta paminėti, kad Immich turi API, todėl programuotojai gali integruoti jį su kitais įrankiais. Pavyzdžiui, galima automatiškai eksportuoti tam tikras nuotraukas į kitas sistemas, generuoti ataskaitas ar kurti savo integracijas.

Vienas praktinis patarimas dėl našumo: jei turi NVIDIA vaizdo plokštę, galima sukonfigūruoti Immich naudoti GPU mašininio mokymosi užduotims. Tai dramatiškai pagreitina veido atpažinimą ir turinio analizę. Docker Compose konfigūracijoje reikia įjungti NVIDIA runtime – dokumentacija tai aprašo detaliai.

Dar vienas dalykas, kurį verta žinoti: Immich aktyviai vystomas. Naujiniai išeina dažnai, kartais kas savaitę. Tai geras ženklas, bet reiškia, kad reikia reguliariai atnaujinti. Galima automatizuoti su Watchtower – Docker įrankiu, kuris automatiškai atnaujina konteinerius. Tik būk atsargus su automatiniais atnaujinimais – kartais naujos versijos turi breaking changes, todėl geriau sekti release notes.

Ar Immich tinka tau? Sąžininga apžvalga

Pabaigai – sąžingas vertinimas, nes ne kiekvienam tai tinkamas sprendimas.

Immich tinka, jei:

  • Esi pasiruošęs investuoti kelias valandas į pradinį diegimą ir konfigūraciją
  • Turi arba planuoji įsigyti serverį/NAS namuose
  • Rūpi privatumas ir duomenų kontrolė
  • Nori išvengti prenumeratų mokesčių ilgalaikėje perspektyvoje
  • Mėgsti žinoti, kaip viskas veikia

Immich netinka, jei:

  • Nori „veikia ir negalvoju” sprendimo
  • Neturi techninių žinių ir nenori jų įgyti
  • Neturi kur paleisti serverio
  • Tau svarbu mobiliosios aplikacijos tobulumas – Google Photos ir Apple Photos vis dar turi pranašumų

Projektas vis dar žymimas kaip „beta” – kūrėjai patys perspėja, kad tai nėra production-ready sprendimas kritiniams duomenims be tinkamo backup. Bet realybėje jis veikia stabiliai ir daugelis žmonių jį naudoja kaip pagrindinę nuotraukų sistemą.

Jei esi IT entuziastas, kuris jau turi Raspberry Pi ar seną kompiuterį dulkantį kažkur spintoje – Immich yra vienas geriausių projektų, kuriam galima duoti naują gyvenimą. Nuotraukos yra vienas asmenaliausių dalykų, kuriuos saugome skaitmeniniame formate. Turėti jas savo rankose, savo serveryje, savo sąlygomis – tai kažkas, ko vertė sunkiai išmatuojama pinigais.

Daugiau

Xreal Air 2 Pro vs Viture One: AR akiniai