⌂ Self-hosting

Immich: l'archivio fotografico di famiglia ospitato in casa

Immich come alternativa self-hosted ai servizi foto commerciali: backup dal telefono, riconoscimento volti, librerie esterne e come proteggere i dati.

Le foto sono quasi sempre i dati a cui una famiglia tiene di più, e sono anche quelli che occupano più spazio negli abbonamenti cloud. Immich è un progetto open source pensato proprio per questo: un'applicazione che riproduce l'esperienza dei grandi servizi fotografici (caricamento automatico dal telefono, ricerca per volti e contenuti, album condivisi) ma con i file sul proprio hardware.

Come è fatto Immich

Immich si installa con Docker Compose usando il file fornito dal progetto. I componenti principali sono:

  • il server, che gestisce API, interfaccia web e lavori di elaborazione;
  • il servizio di machine learning, che calcola i volti e gli indici per la ricerca semantica (puoi scrivere «spiaggia al tramonto» e trovare le foto corrispondenti);
  • PostgreSQL con un'estensione per i vettori, dove vengono salvati metadati e indici;
  • Redis (o un suo equivalente compatibile) per le code dei lavori.

Il carico più pesante si concentra nelle prime settimane, quando vengono generate miniature, transcodificati i video e analizzati i volti dell'intero archivio. Su un mini PC moderno l'elaborazione di decine di migliaia di foto può richiedere giorni, poi il lavoro diventa incrementale e leggero. Il servizio di machine learning può anche girare su un'altra macchina più potente, lasciando il server su un dispositivo più modesto.

Il backup dal telefono

L'app mobile, per Android e iOS, carica automaticamente le nuove foto e i video. Alcune impostazioni meritano attenzione:

  1. Selezione degli album. Si scelgono quali cartelle del telefono caricare: fotocamera sì, cartelle delle app di messaggistica magari no.
  2. Caricamento in background. Su iOS il sistema limita l'attività in background, quindi il caricamento è più affidabile aprendo l'app di tanto in tanto o mentre il telefono è in carica.
  3. Solo Wi-Fi. Per i video lunghi conviene evitare il caricamento su rete mobile.
  4. Liberare spazio. La funzione che cancella dal telefono le foto già caricate va usata solo quando si è certi che esista anche un backup del server.

Librerie esterne: non spostare tutto

Chi ha già un archivio organizzato in cartelle, magari su un NAS, non è obbligato a reimportarlo. Immich supporta le librerie esterne: cartelle montate in sola lettura che vengono indicizzate senza copiare i file. È la soluzione ideale per archivi storici, scansioni di vecchie stampe o cartelle curate a mano negli anni.

Un esempio di montaggio nel file Compose:

volumes:
  - ${UPLOAD_LOCATION}:/usr/src/app/upload
  - /mnt/archivio/foto:/mnt/archivio:ro

Il suffisso :ro garantisce che Immich non possa modificare i file originali, un'ottima abitudine per qualsiasi archivio prezioso.

Organizzare e condividere

Il riconoscimento dei volti raggruppa automaticamente le persone; basta dare un nome ai gruppi e unire quelli duplicati. Le foto vengono ordinate per data di scatto letta dai metadati EXIF, quindi un archivio con date errate (scansioni, foto ricevute in chat) si presenterà disordinato: Immich permette di correggere data e luogo, anche su più elementi insieme.

Per la famiglia sono utili:

  • utenti separati, ciascuno con la propria libreria e una quota di spazio;
  • condivisione con partner, che mostra nella propria cronologia le foto di un'altra persona;
  • album condivisi tra utenti o tramite link, con scadenza e password.

Aggiornamenti: leggere sempre le note

Immich è sviluppato a ritmo sostenuto e in passato alcune versioni hanno richiesto modifiche manuali al file Compose o alle variabili d'ambiente. La regola è semplice:

  • fissare la versione dell'immagine invece di usare un tag generico;
  • leggere le note di rilascio prima di aggiornare, cercando la sezione sulle modifiche incompatibili;
  • aggiornare una versione alla volta se si è rimasti indietro.

Proteggere l'archivio

Il backup di Immich ha due parti, e servono entrambe:

Cosa Perché
Cartella dei caricamenti contiene i file originali delle foto e dei video
Database PostgreSQL contiene album, volti, utenti, descrizioni e metadati modificati

Immich esegue periodicamente un dump automatico del database nella cartella dei caricamenti, ma va verificato che sia attivo e che la cartella sia inclusa nella copia esterna. Un archivio senza database si può ricostruire dai file, ma si perdono album, nomi delle persone e correzioni fatte a mano.

Le miniature e i video transcodificati, invece, si possono rigenerare e non è indispensabile includerli nel backup remoto: escluderli riduce lo spazio occupato.

Esporlo o no

Per caricare le foto quando si è fuori casa servono un accesso remoto o una VPN. La soluzione più prudente è una rete privata tra i propri dispositivi; chi preferisce un accesso pubblico deve usare HTTPS, password robuste e, se possibile, un sistema di autenticazione centralizzato davanti al servizio.

In sintesi

  • Immich offre caricamento automatico, ricerca per volti e contenuti e album condivisi con i dati in casa.
  • L'elaborazione iniziale è lunga, poi il carico diventa leggero.
  • Le librerie esterne in sola lettura evitano di duplicare archivi già organizzati.
  • Prima di ogni aggiornamento vanno lette le note di rilascio.
  • Il backup deve includere sia i file originali sia il database.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche