Google Foto è comodo, ma comporta anche un compromesso: foto e video personali vengono archiviati su un servizio cloud di terze parti. Immich è un’alternativa open source e self-hosted che permette di creare una libreria fotografica privata sul proprio server, con backup automatico da smartphone, ricerca, album e gestione dei video.
In questa guida vediamo come installare Immich con Docker Compose su Linux. L’obiettivo è creare una soluzione simile a Google Foto, ma con dati, archivio e configurazione sotto il proprio controllo.
Cos’è Immich
Immich è un software self-hosted per il backup, l’organizzazione e la consultazione di foto e video. Puoi caricare i contenuti dal browser oppure usare le app mobili per Android e iPhone, creando un backup automatico della galleria fotografica sul tuo server.
Oltre alla visualizzazione di foto e video, Immich include funzioni come album, ricerca, geo-localizzazione, condivisione, riconoscimento facciale e strumenti basati su machine learning. È quindi una delle alternative open source più complete a Google Foto.

Requisiti
Prima di iniziare, verifica di avere:
- un server Linux a 64 bit, come un VPS, un NAS compatibile oppure un mini PC;
- Docker Engine con il plugin Docker Compose;
- almeno 6 GB di RAM, preferibilmente 8 GB;
- almeno 2 vCPU, meglio 4 per un utilizzo più fluido;
- spazio disco sufficiente per foto, video, miniature e file elaborati;
- un filesystem Linux compatibile, come EXT4, ZFS, BTRFS o XFS.
Immich può generare miniature e versioni video ricodificate: in media, questi dati aggiuntivi possono aumentare l’occupazione della libreria dal 10% al 20%. Per il database PostgreSQL è consigliato usare storage locale veloce, preferibilmente un SSD. Non usare una condivisione di rete per la directory del database.
1. Crea la cartella di lavoro
Accedi al server tramite terminale e crea una cartella dedicata a Immich:
mkdir -p ~/immich-app
cd ~/immich-app
In questa directory verranno salvati i file di configurazione e, se scegli i percorsi predefiniti, anche libreria e database.
2. Scarica i file Docker Compose ufficiali
Immich pubblica un file Compose e un file di configurazione aggiornati a ogni release. Per questo motivo è meglio scaricarli direttamente dalla release più recente invece di usare un file trovato in guide datate.
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
Al termine dovresti trovare nella cartella i file docker-compose.yml e .env.
3. Configura il file .env
Apri il file di configurazione:
nano .env
Le variabili più importanti da controllare sono queste:
# Cartella in cui Immich salverà foto, video e file elaborati
UPLOAD_LOCATION=./library
# Cartella in cui PostgreSQL salverà il database
DB_DATA_LOCATION=./postgres
# Fuso orario
TZ=Europe/Rome
# Versione di Immich
IMMICH_VERSION=v3
# Password del database: usa solo caratteri A-Z, a-z e 0-9
DB_PASSWORD=CAMBIA_QUESTO_VALORE
La password del database deve essere sostituita con un valore casuale. Per evitare problemi con il parsing di Docker Compose, usa solo lettere e numeri, senza spazi o caratteri speciali.
Puoi anche impostare un percorso assoluto per la libreria, ad esempio:
UPLOAD_LOCATION=/mnt/foto/immich
Questa soluzione è particolarmente utile se vuoi conservare foto e video su un disco dedicato. Prima di avviare i container, verifica che il percorso esista, abbia spazio libero sufficiente e sia accessibile dall’utente che esegue Docker.
4. Avvia Immich con Docker Compose
Dopo aver salvato il file .env, avvia lo stack:
docker compose up -d
Il comando corretto è docker compose, con lo spazio tra docker e compose. Il vecchio comando docker-compose non è più supportato dal progetto.
Puoi verificare lo stato dei container con:
docker compose ps
Per controllare eventuali messaggi di errore nei log:
docker compose logs -f
5. Primo accesso a Immich
Una volta completato l’avvio, apri il browser e visita:
http://IP-DEL-SERVER:2283
Al primo accesso Immich mostra una procedura iniziale: crea il primo account amministratore usando un indirizzo email e una password robusta. Questo account potrà poi invitare altri utenti e gestire le impostazioni generali dell’istanza.
6. Installa l’app sullo smartphone
Per trasformare Immich in una vera alternativa a Google Foto, installa l’app Immich sul tuo smartphone Android o iPhone. Durante la configurazione inserisci l’indirizzo del tuo server, ad esempio:
http://192.168.1.50:2283
Se vuoi accedere fuori casa, è meglio usare un dominio con HTTPS, ad esempio https://foto.example.com, configurato tramite reverse proxy.
Dall’app puoi scegliere quali album o cartelle del telefono includere nel backup automatico. Prima di attivare il caricamento completo, controlla lo spazio libero disponibile sul server.
7. Pubblicare Immich con HTTPS
Se vuoi usare Immich anche fuori dalla rete locale, evita di esporre direttamente la porta 2283 su Internet. La soluzione consigliata è usare un reverse proxy, come Nginx Proxy Manager, Caddy o Traefik.
Con Nginx Proxy Manager puoi creare un Proxy Host con questi valori:
- Domain Names:
foto.example.com - Scheme:
http - Forward Hostname / IP: IP locale del server Immich oppure nome del servizio Docker
- Forward Port:
2283 - Websockets Support: attivo
Dalla scheda SSL puoi poi richiedere un certificato Let’s Encrypt e attivare l’opzione Force SSL. Se usi un reverse proxy, ricorda di configurare DNS, porte 80 e 443 e certificato prima di collegare l’app mobile dall’esterno.
8. Backup: cosa salvare
Immich non sostituisce una strategia di backup. Anche se le foto sono ospitate sul tuo server, devi mantenere copie aggiuntive dei file più importanti.
Per un backup completo devi salvare sia:
- la directory indicata da
UPLOAD_LOCATION, che contiene foto, video, miniature, profili, backup e file elaborati; - il database PostgreSQL nella directory indicata da
DB_DATA_LOCATION.
Il database contiene metadati, percorsi dei file, utenti, album e informazioni necessarie al funzionamento dell’istanza. Le foto e i video originali, invece, sono archiviati nella libreria sul filesystem.
Immich crea automaticamente backup del database nella cartella UPLOAD_LOCATION/backups. Questi dump contengono però solo i metadati: non includono foto e video. Per questo è consigliata una strategia 3-2-1, con almeno tre copie dei dati su due supporti differenti e una copia conservata fuori sede.
9. Aggiornare Immich
Prima di aggiornare, esegui sempre un backup della libreria e del database. Poi, dalla cartella del progetto, puoi usare:
docker compose pull
docker compose up -d
Controlla sempre le note di rilascio e la documentazione ufficiale prima di passare a una nuova versione. Evita di aggiornare senza backup, soprattutto se la libreria contiene anni di fotografie personali.
Considerazioni finali
Immich è una soluzione molto interessante per chi vuole un’alternativa self-hosted a Google Foto. Richiede più attenzione rispetto a un servizio cloud, perché bisogna gestire spazio, aggiornamenti, sicurezza e backup, ma in cambio offre controllo diretto su foto e video personali.
Con Docker Compose l’installazione è alla portata di chi ha già familiarità con un server Linux o un homelab. Se hai una libreria fotografica importante, pianifica bene lo storage e imposta una strategia di backup prima di attivare il caricamento automatico da tutti i dispositivi.
FAQ
Cos’è Immich?
Immich è un software open source e self-hosted per archiviare, organizzare e visualizzare foto e video su un proprio server. Può essere usato come alternativa privata a Google Foto.
Immich può sostituire Google Foto?
Immich offre funzioni simili, come backup automatico da smartphone, album, ricerca, condivisione e gestione di foto e video. A differenza di Google Foto, i dati vengono archiviati sul proprio server.
Come si installa Immich?
Il metodo consigliato dal progetto è Docker Compose. È preferibile scaricare il file Compose e il file .env direttamente dalla release ufficiale più recente.
Quanta RAM serve per Immich?
Il requisito minimo indicato è 6 GB di RAM, mentre 8 GB sono consigliati per un’esperienza più fluida. Su sistemi con 4 GB è possibile ridurre alcune funzioni, ad esempio quelle di machine learning.
Dove vengono salvate foto e video?
Foto, video, miniature e file elaborati vengono salvati nel percorso definito dalla variabile UPLOAD_LOCATION. Il database viene invece salvato nel percorso indicato da DB_DATA_LOCATION.
È possibile usare Immich fuori casa?
Sì. È consigliato pubblicare Immich dietro reverse proxy con dominio e HTTPS, evitando di esporre direttamente la porta 2283 su Internet.
Immich esegue il backup delle foto automaticamente?
L’app mobile può caricare automaticamente foto e video dallo smartphone al server. Devi comunque creare copie di backup esterne della libreria e del database per proteggerti da guasti, errori o cancellazioni accidentali.

