Skip to main content

Nuova pagina

Comandi Docker per Immich

I container principali di Immich sono immich_server, immich_machine_learning e immich_postgres. Tutti i comandi si eseguono dalla cartella dove si trova il docker-compose.yml.

immich-admin — CLI amministrativa

Il container immich_server include una CLI integrata chiamata immich-admin. Prima connettiti al container, poi esegui i comandi:

docker exec -it immich_server bash
# una volta dentro:
immich-admin help

Oppure direttamente senza entrare nel container:

docker exec -it immich_server immich-admin <comando>
Comando Descrizione
help Mostra tutti i comandi disponibili
version Versione installata di Immich
list-users Elenca gli utenti
reset-admin-password Resetta la password dell'admin
enable-password-login Abilita il login con password
disable-password-login Disabilita il login con password
enable-oauth-login Abilita il login OAuth
disable-oauth-login Disabilita il login OAuth
enable-maintenance-mode Attiva la modalità manutenzione
disable-maintenance-mode Disattiva la modalità manutenzione
change-media-location Aggiorna i path nel DB dopo aver spostato i media

Esempi pratici

# Resettare la password dell'admin
docker exec -it immich_server immich-admin reset-admin-password

# Attivare la modalità manutenzione
docker exec -it immich_server immich-admin enable-maintenance-mode
# → restituisce un URL con token per accedere alla manutenzione

# Disattivarla dopo l'intervento
docker exec -it immich_server immich-admin disable-maintenance-mode

# Vedere la versione
docker exec -it immich_server immich-admin version

Backup del database

Il backup automatico è attivo per default (ogni giorno alle 2:00, ultimi 14 backup). I file vengono salvati in UPLOAD_LOCATION/backups.

Per avviare un backup manuale via web UI: Administration → Job Queues → Create job → Create Database Backup

Per fare un backup manuale da riga di comando:

docker exec -t immich_postgres pg_dumpall \
  --clean --if-exists \
  --username=<DB_USERNAME> \
  > /percorso/backup/immich-database.sql

Con compressione:

docker exec -t immich_postgres pg_dumpall \
  --clean --if-exists \
  --username=<DB_USERNAME> \
  | gzip > /percorso/backup/immich-database.sql.gz

Attenzione: il backup del database contiene solo i metadati, non le foto/video. Per un backup completo occorre copiare anche la cartella UPLOAD_LOCATION.

Restore del database

Il metodo raccomandato è via web UI: Administration → Maintenance → Restore database backup

Per il restore da riga di comando (richiede un'installazione fresca dove il server non ha mai girato):

# 1. Crea i container senza avviarli
docker compose create

# 2. Avvia solo Postgres
docker start immich_postgres
sleep 10

# 3. Esegui il restore
docker exec -i immich_postgres psql \
  --dbname=postgres \
  --username=<DB_USERNAME> \
  < /percorso/backup/immich-database.sql

# 4. Avvia tutti gli altri container
docker compose up -d

Se il server è già stato avviato prima del restore, elimina la cartella DB_DATA_LOCATION per azzerare il database prima di procedere.

Permessi e proprietario dei file

Se hai ripristinato file direttamente sul filesystem, controlla che il proprietario sia corretto:

# Trova l'UID usato da Immich (di default 1000)
docker exec immich_server id

# Correggi il proprietario nella cartella upload
sudo chown -R 1000:1000 /percorso/UPLOAD_LOCATION