Immich – self-hostovaná databáze fotek

Hledali jsme v novinách náhradu za SmugMug, který byl pro nás příliš drahý, a našli Immich, self-hostovanou databázi fotek:

TDLR: Můžu velmi doporučit. Nainstaloval jsem za hodinku přes Docker na nejlevnější malý VPS u Hetzneru (zhruba 5 € měsíčně). Valí to rychle, aplikace je přes drobné nedostatky UX dobře udělaná, aktivně vyvíjená.

Databáze je uzavřená, tedy nenabízí žádný veřejný pohled pro nepřihlášené, ale alba jde sdílet přes odkaz, takhle to vypadá.

Velmi praktické je pro nás rozpoznávání tváří, které funguje velmi dobře, aniž bychom museli sdílet data s nějakou další stranou.

Existují i aplikace pro telefony, též velmi slušně udělané. Umí automaticky zálohovat vybraná alba z telefonu.

Jde udělat víc uživatelských účtů, které spolu můžou fotky nějak sdílet, ale pokud jsem správně pochopil, nejde to udělat tak, že by automaticky sdílely celou knihovnu (což chceme my), takže my sdílíme jeden společný účet. Není to ideální, ale funguje to.

1 Líbí se

Nebojite se, ze vam ucet pekne nakopnou scrapujici boti? Ja prave kvuli tomu mam verejne galerie na SmugMugu.

Trochu jo. Je docela dobře možné, že projdeme tradiční trajektorii, kdy to nějakou dobu poběží, pak tam dlouhodobě brutálně vylítne síťový provoz a budeme to muset strčit za nějaký štít à la Cloudflare. (Hrozně mě ale štve, že jsme se kvůli LLMs dostali do téhle situace, kdy prakticky nejde mít datově zajímavé služby jen tak veřejně vystavené.)

1 Líbí se

Dobrý den, díky za tip. Hraju si s tím a vypadá to fakt pěkně.
Co se týče sdílení, tak jsem v Nastavení narazil na možnost přidat tzv Sdílení mezi partnery a sdílet s ním všechny fotky, takže možná není nutné sdílet společný účet

.

1 Líbí se

Pro zajímavost, mám potřebu náhrady iCloud Photos, které mi zatím připadá jako nejlepší řešení na fotky - E2E šifrované, super aplikace na iOS, rychlé, funkční.

Ale neexistující aplikace na Android, mizerný frontend ma webu (používáme pro sídleni fotek dětí s širší rodinou) a obava do budoucna že s tlakem totalitářů z EU to už neprůstřelně zabezpečené nebude.

Zvažoval jsem Nextcloud a tohle vypadá jako modernější alternativa, ale tuším že obojí má stejnou nevýhodu - neumí E2E šifrování, tedy pro server jsou fotky otevřené. To bych mohl řešit hostováním na domácím serveru, ale ten zase není tak výkonný aby to používání bylo tak příjemně rychlé jako něco co má uložiště v cloudu.

Pracuji tedy na vlastním řešení - jako iCloud s šifrováním úložiště (pomocí frameworku Evolu), ale jako kvalitní webová aplikace dobře použitelná na všech OS, s možností úložiště doma na NAS nebo v cloudu.

Má někdo podobnou potřebu?

2 Líbí se

Partnerské sdílení je blízko tomu, co chceme, ale podle dokumentace se nevztahuje na rozpoznané obličeje, takže by pro nás nefungovalo dobře.

Je to tak. Immich má na serveru normálně adresář s fotkami a databázi s metadaty. Mně to zatím nevadí, konkrétně v tomhle případě jde stejně vesměs o fotky, se kterými jinde pracujeme veřejně.

Když máš ta data na serveru šifrovaná, jak fungujou věci jako třeba vyhledávání? Homomorfní šifrování? Anebo se to nějak děje na klientovi? U sbírky fotek mně to šifrování na serveru přijde hodně náročné na produktový design. (Fastmail třeba zajímavě píše, proč nešifrují mail na serveru.)

Šifrování umí Ente - https://ente.io/.

Zkušenost přímou nemám, ale působí to hezky.

2 Líbí se

Používám Synology a jsem s ním spokojen. Vlastně dvě, jedno pro “provozní data” a druhý pro geograficky oddělené zálohování.

1 Líbí se

Článek Fastmail jsem jen rychle proletěl, zajímá mě hlavně ten seznam co není možné. Všechny body jsou relevantní k typické mailové schránce, ale u fotek by nemusel být problém protože tam jde o menší objem dat, takže to jde dělat na klientovi, viz. iCloud. Včetně neurálního indexu.

Evolu funguje dost podobně - celý SQLite databáze je na klientovi, framework jí jen synchronizuje a zálohuje na serveru, ale v zašifrované podobě. Server je jen úložiště dat kterým nerozumí a je úplně stejný pro všechny aplikace.

1 Líbí se

Me uplne prelil pot, jak se tohle bude mezi klienty mergovat. Kdysi jsem programoval client-first appku na sklady/prodej leku a 97% celeho vyvojoveho casu zabraly mechanismy mergovani dat od ruznych clientu.

1 Líbí se

Ente vypadá skvěle, díky! Neznal jsem. Tady je nějaké srovnání:

Evolu, které zmiňuje Honza, nabízí nějaký CRDT základ, tak třeba mají ty konflikty vyřešené takhle?

To je validní obava. Už jsem to studoval před delší dobou, tak neodpovím na konkrétní dotazy, ale pamatuju si že to má Evolu vyřešené dobře. Koukni na dokumentaci nebo nějaké přednášky.

1 Líbí se