8.2 - Sauvegarder PostgreSQL
Immich crée automatiquement des dumps PostgreSQL dans :
UPLOAD_LOCATION/backups
La rétention et l'horaire se règlent dans :
Administration > Settings > Backup
Le réglage par défaut documenté est un dump quotidien à 02:00 avec conservation des 14 derniers dumps.
Déclencher un dump depuis Immich
Administration > Job Queues > Create job > Create Database Dump
Dump manuel Docker
Identifier le conteneur :
docker ps --format '{{.Names}} {{.Image}}' | grep -Ei 'immich.*postgres|postgres.*immich'
Créer un dump :
mkdir -p /srv/backups/immich
docker exec -t immich_postgres \
pg_dump --clean --if-exists --dbname=immich --username=postgres \
| gzip > /srv/backups/immich/immich-$(date +%F-%H%M).sql.gz
Vérifier :
gzip -t /srv/backups/immich/immich-AAAA-MM-JJ-HHMM.sql.gz
ls -lh /srv/backups/immich
TrueNAS
Découvrir le conteneur exact :
sudo docker ps --format '{{.Names}} {{.Image}}' | grep -Ei 'immich|postgres|vector'
Puis adapter :
sudo docker exec -t NOM_CONTENEUR_POSTGRES \
pg_dump --clean --if-exists --dbname=immich --username=postgres \
| gzip > /mnt/HDD_DATA_TRUENAS/IMMICH/data/backups/manuel-$(date +%F-%H%M).sql.gz
Ce que le dump ne contient pas
- photos ;
- vidéos ;
- miniatures ;
- fichiers externes ;
- configuration
.env; - paramètres du reverse proxy.
Règles
- ne pas utiliser une copie brute du dossier PostgreSQL comme seule sauvegarde ;
- protéger le dump avec les mêmes exigences de confidentialité que les photos ;
- copier le dump hors du serveur ;
- tester
gzip -t; - tester une restauration ;
- utiliser une version compatible.
Le processus de restauration a changé avec Immich v2.5.0. Pour un ancien dump, consulter la documentation correspondant à la version de création.
Référence : https://docs.immich.app/administration/backup-and-restore/