Introduction : Reprendre le Contrôle de Vos Photos et Vidéos
En 2026, la question de la souveraineté numérique n'a jamais été aussi pressante. Google Photos, iCloud, Amazon Photos — ces services centralisés stockent des milliards de souvenirs personnels sur des serveurs que vous ne contrôlez pas. Entre les changements de politique de confidentialité, la réduction des quotas gratuits et l'exploitation des données pour entraîner des modèles d'intelligence artificielle, de plus en plus d'utilisateurs cherchent une alternative crédible.
Immich s'est imposé comme la réponse open-source la plus aboutie à ce besoin. Lancé en 2022 par Alex Tran, ce projet a connu une croissance fulgurante pour devenir, en 2026, une plateforme mature capable de rivaliser fonctionnellement avec Google Photos — le tout hébergé sur votre propre infrastructure. Avec plus de 55 000 étoiles sur GitHub, une communauté extrêmement active et un rythme de développement soutenu, Immich représente aujourd'hui le gold standard du self-hosting photo.
Architecture en un coup d'œil

Dans cet article, nous allons explorer en profondeur ce qu'Immich propose, comment l'installer et le configurer, comment migrer depuis Google Photos, et comment tirer le meilleur parti de ses fonctionnalités avancées comme la reconnaissance faciale, la recherche sémantique par IA, le transcodage vidéo matériel et bien plus encore.
Qu'est-ce qu'Immich ?
Immich est une solution de gestion et de sauvegarde de photos et vidéos auto-hébergée, haute performance, conçue pour offrir une expérience utilisateur comparable à Google Photos. Le projet est entièrement open-source, distribué sous licence AGPL-3.0, et repose sur une architecture moderne composée de plusieurs microservices.
Les Caractéristiques Clés
- Backup automatique depuis les applications mobiles iOS et Android
- Interface web réactive et moderne construite avec SvelteKit
- Reconnaissance faciale propulsée par le machine learning
- Recherche sémantique grâce au modèle CLIP (recherche par description textuelle)
- Timeline et cartes avec visualisation géographique des photos
- Albums partagés avec gestion fine des permissions
- Support des formats RAW (CR2, NEF, ARW, DNG, etc.)
- Transcodage vidéo matériel (VAAPI, NVENC, QSV)
- Bibliothèques externes pour indexer des dossiers existants
- OAuth/OIDC pour l'authentification centralisée
- API REST complète et documentation OpenAPI
- Support du stockage S3 en plus du stockage local
Architecture Technique
Immich repose sur une architecture bien pensée, composée de plusieurs services :
- immich-server : Le serveur principal (API REST, NestJS/TypeScript)
- immich-machine-learning : Service dédié au ML (Python, ONNX Runtime)
- PostgreSQL : Base de données principale avec l'extension pgvecto.rs pour la recherche vectorielle
- Redis : File d'attente pour les jobs asynchrones (thumbnails, transcodage, ML)
Cette séparation des responsabilités permet une mise à l'échelle flexible : vous pouvez par exemple déporter le service de machine learning sur une machine avec GPU dédié tout en gardant le serveur principal sur un NAS modeste.
Installation avec Docker Compose
L'installation d'Immich se fait principalement via Docker Compose. C'est la méthode recommandée par l'équipe et celle qui garantit la meilleure reproductibilité. Voici les prérequis et la procédure complète.
Prérequis
- Un serveur Linux (Ubuntu 22.04+, Debian 12+, ou toute distribution supportant Docker)
- Docker Engine 20.10+ et Docker Compose v2
- Au minimum 4 Go de RAM (8 Go recommandés pour le ML)
- Espace disque suffisant pour vos photos et vidéos
Préparation du Système
# Installer Docker si ce n'est pas déjà fait
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Créer le répertoire pour Immich
sudo mkdir -p /opt/immich
cd /opt/immich
# Télécharger les fichiers de configuration officiels
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
wget -O hwaccel.ml.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml
wget -O hwaccel.transcoding.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.ymlLe Fichier docker-compose.yml Complet
Voici un fichier docker-compose.yml complet et commenté, basé sur la configuration officielle avec des ajouts pour la production :
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# Le serveur gère à la fois l'API et les microservices (jobs)
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
# Si vous avez une bibliothèque externe :
# - /chemin/vers/photos/existantes:/mnt/photos-externes:ro
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:2283/api/server/ping || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# Pour le GPU NVIDIA, décommentez :
# extends:
# file: hwaccel.ml.yml
# service: cuda
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
healthcheck:
test: ["CMD-SHELL", "python3 -c 'import requests; requests.get(\"http://localhost:3003/ping\")'"]
interval: 30s
timeout: 10s
retries: 3
start_period: 90s
redis:
container_name: immich_redis
image: docker.io/redis:7.4-alpine
restart: always
healthcheck:
test: redis-cli ping || exit 1
interval: 10s
timeout: 5s
retries: 5
volumes:
- redis-data:/data
database:
container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg16-v0.3.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
healthcheck:
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
command:
[
"postgres",
"-c", "shared_preload_libraries=vectors.so",
"-c", "search_path=\"$$user\", public, vectors",
"-c", "logging_collector=on",
"-c", "max_wal_size=2GB",
"-c", "shared_buffers=512MB",
"-c", "wal_compression=on",
]
volumes:
model-cache:
redis-data:Configuration du Fichier .env
Le fichier .env contient toutes les variables de configuration. Voici les paramètres essentiels à personnaliser :
# Version d'Immich (laisser 'release' pour la dernière stable)
IMMICH_VERSION=release
# Emplacement des uploads (photos et vidéos)
UPLOAD_LOCATION=/mnt/data/immich/upload
# Configuration PostgreSQL
DB_DATA_LOCATION=/mnt/data/immich/postgres
DB_PASSWORD=VotreMotDePasseTresSecurise2026!
DB_USERNAME=immich
DB_DATABASE_NAME=immich
# Clé secrète pour les JWT (générer avec : openssl rand -base64 128)
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003Lancement
# Démarrer tous les services
cd /opt/immich
docker compose up -d
# Vérifier que tous les conteneurs sont healthy
docker compose ps
# Suivre les logs en temps réel
docker compose logs -f immich-serverAprès le démarrage, Immich est accessible sur http://votre-serveur:2283. Le premier utilisateur créé sera automatiquement administrateur.
Configuration Avancée
PostgreSQL et pgvecto.rs
Immich utilise PostgreSQL avec l'extension pgvecto.rs pour stocker et rechercher les embeddings vectoriels générés par les modèles de machine learning. Cette extension permet la recherche par similarité vectorielle, essentielle pour la recherche sémantique et la reconnaissance faciale.
Quelques optimisations PostgreSQL recommandées pour les grosses bibliothèques (plus de 100 000 photos) :
# Modifier les paramètres PostgreSQL dans le docker-compose.yml
command:
[
"postgres",
"-c", "shared_preload_libraries=vectors.so",
"-c", "search_path=\"$$user\", public, vectors",
"-c", "shared_buffers=1GB",
"-c", "effective_cache_size=3GB",
"-c", "maintenance_work_mem=512MB",
"-c", "work_mem=16MB",
"-c", "max_wal_size=2GB",
"-c", "checkpoint_completion_target=0.9",
"-c", "random_page_cost=1.1",
"-c", "effective_io_concurrency=200",
"-c", "wal_compression=on",
]Redis : File d'Attente des Jobs
Redis gère la file d'attente des tâches asynchrones d'Immich : génération de thumbnails, extraction de métadonnées EXIF, exécution des modèles ML, transcodage vidéo, etc. Pour les installations avec beaucoup de médias, vous pouvez ajuster la configuration via l'interface d'administration d'Immich (section « Job Settings ») pour contrôler le nombre de workers par type de job.
Machine Learning : Modèles et Accélération
Le service de machine learning d'Immich utilise ONNX Runtime pour exécuter les modèles. Plusieurs modèles sont disponibles et configurables depuis l'interface d'administration :
- CLIP : Pour la recherche sémantique (ViT-B-16, ViT-B-32, ViT-L-14, XLM-Roberta-Large-ViT-H-14, etc.)
- Reconnaissance faciale : Buffalo_l (par défaut), Buffalo_s (plus léger)
Pour accélérer l'inférence ML avec un GPU NVIDIA, modifiez le docker-compose.yml :
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-cuda
extends:
file: hwaccel.ml.yml
service: cuda
volumes:
- model-cache:/cache
env_file:
- .env
restart: alwaysImmich supporte également l'accélération via OpenVINO (Intel) et ARM NN (processeurs ARM) pour le machine learning.
Applications Mobiles et Interface Web
Applications iOS et Android
Les applications mobiles Immich sont disponibles sur l'App Store et le Google Play Store. Elles offrent une expérience quasi identique à Google Photos :
- Backup automatique en arrière-plan (photos et vidéos)
- Backup sélectif par album
- Connexion Wi-Fi uniquement ou données mobiles
- Navigation dans la timeline avec défilement rapide
- Visualisation des albums partagés
- Recherche (texte, visages, carte)
- Upload manuel de fichiers
- Partage via lien
La configuration est simple : entrez l'URL de votre serveur Immich, vos identifiants, puis activez le backup automatique. L'application détecte les nouvelles photos et les envoie automatiquement en arrière-plan.
# Si votre serveur est derrière un reverse proxy,
# assurez-vous que l'URL externe est accessible :
# https://photos.votredomaine.fr
# Exemple de configuration Nginx pour reverse proxy
server {
listen 443 ssl http2;
server_name photos.votredomaine.fr;
client_max_body_size 50000M; # Important pour les gros uploads vidéo
ssl_certificate /etc/letsencrypt/live/photos.votredomaine.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/photos.votredomaine.fr/privkey.pem;
location / {
proxy_pass http://localhost:2283;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Timeouts pour les gros uploads
proxy_read_timeout 600s;
proxy_send_timeout 600s;
send_timeout 600s;
}
}Interface Web
L'interface web d'Immich, construite avec SvelteKit, est réactive et riche en fonctionnalités. Elle comprend :
- Timeline : Vue chronologique avec défilement rapide et regroupement par date
- Explorer : Navigation par personnes, lieux, et catégories détectées par le ML
- Carte : Visualisation géographique basée sur les données GPS EXIF
- Albums : Création, partage, et organisation
- Recherche : Recherche textuelle sémantique, par date, par localisation, par type de média
- Administration : Gestion des utilisateurs, quotas, jobs, et configuration système
- Trash : Corbeille avec suppression automatique après 30 jours
Reconnaissance Faciale et Recherche Intelligente
Reconnaissance Faciale
La reconnaissance faciale d'Immich repose sur le modèle InsightFace (Buffalo). Le processus se déroule en plusieurs étapes :
- Détection : Identification des visages dans chaque photo
- Embedding : Génération d'un vecteur numérique pour chaque visage détecté
- Clustering : Regroupement automatique des visages similaires
- Nommage : L'utilisateur peut nommer chaque personne détectée
Une fois les personnes nommées, vous pouvez les fusionner (si le système a créé plusieurs groupes pour la même personne), les masquer, ou les rechercher. La précision est impressionnante, même avec des photos de qualité variable.
Recherche Sémantique avec CLIP
La fonctionnalité la plus impressionnante d'Immich est sans doute la recherche sémantique, propulsée par le modèle CLIP (Contrastive Language-Image Pre-Training) développé par OpenAI. Ce modèle permet de rechercher des photos en utilisant du langage naturel.
Exemples de recherches possibles :
- « coucher de soleil sur la plage »
- « chat noir sur un canapé »
- « enfants jouant dans la neige »
- « gâteau d'anniversaire avec des bougies »
- « voiture rouge garée devant une maison »
Le modèle comprend les concepts visuels et peut retrouver des photos même si aucun tag n'a été manuellement ajouté. Immich propose plusieurs variantes de CLIP, des plus légères aux plus puissantes :
| Modèle CLIP | RAM Requise | Précision | Vitesse |
|---|---|---|---|
| ViT-B-32 | ~600 Mo | Bonne | Rapide |
| ViT-B-16 (défaut) | ~800 Mo | Très bonne | Moyenne |
| ViT-L-14 | ~1.5 Go | Excellente | Lente |
| XLM-Roberta-Large-ViT-H-14 | ~3 Go | Maximale (multilingue) | Très lente |
Le modèle XLM-Roberta-Large-ViT-H-14 est particulièrement intéressant car il supporte la recherche en français et dans de nombreuses autres langues.
Albums Partagés et Liens de Partage
Immich offre plusieurs mécanismes de partage :
- Albums partagés : Invitez d'autres utilisateurs Immich à voir (et optionnellement contribuer à) un album
- Liens de partage : Générez des URLs publiques avec mot de passe optionnel et date d'expiration
- Partage de bibliothèque : Partagez l'intégralité de votre bibliothèque avec un autre utilisateur (Partner Sharing)
Transcodage Vidéo Hardware
Le transcodage vidéo est l'une des tâches les plus gourmandes en ressources. Immich supporte l'accélération matérielle via plusieurs technologies pour réduire drastiquement les temps de traitement :
VAAPI (Intel/AMD)
Pour les processeurs Intel avec Quick Sync ou les GPU AMD :
immich-server:
extends:
file: hwaccel.transcoding.yml
service: vaapi
devices:
- /dev/dri:/dev/driNVENC (NVIDIA)
Pour les GPU NVIDIA :
immich-server:
extends:
file: hwaccel.transcoding.yml
service: nvenc
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities:
- gpu
- videoQSV (Intel Quick Sync Video)
Pour les processeurs Intel récents :
immich-server:
extends:
file: hwaccel.transcoding.yml
service: qsv
devices:
- /dev/dri:/dev/driLa configuration du transcodage se fait ensuite depuis l'interface d'administration d'Immich. Vous pouvez définir le codec cible (H.264, H.265/HEVC, AV1), la résolution maximale, le bitrate, et la politique de transcodage (tous les fichiers, uniquement les formats non supportés par le navigateur, etc.).
Bibliothèques Externes (External Libraries)
Une fonctionnalité essentielle pour les utilisateurs ayant déjà une collection de photos organisée : les bibliothèques externes. Plutôt que de ré-uploader toutes vos photos, Immich peut indexer des dossiers existants sur votre système de fichiers.
# Dans docker-compose.yml, montez vos dossiers existants
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /mnt/nas/photos-famille:/mnt/photos-famille:ro
- /mnt/nas/photos-vacances:/mnt/photos-vacances:roEnsuite, dans l'interface d'administration :
- Allez dans Administration → Bibliothèques externes
- Créez une nouvelle bibliothèque pour l'utilisateur souhaité
- Ajoutez les chemins d'import (
/mnt/photos-famille, etc.) - Configurez les patterns d'exclusion si nécessaire (par exemple
**/Thumbs.db) - Lancez le scan
Immich indexera les fichiers sans les déplacer, générera les thumbnails et lancera le pipeline ML. Le mode lecture seule (:ro) est recommandé pour éviter toute modification accidentelle de vos fichiers originaux.
Authentification OAuth/OIDC
Pour les environnements multi-utilisateurs ou les entreprises, Immich supporte l'authentification via OAuth 2.0 / OpenID Connect. Cela permet l'intégration avec Authentik, Keycloak, Authelia, Google, ou tout autre fournisseur OIDC.
La configuration se fait depuis l'interface d'administration :
- Issuer URL : L'URL du fournisseur OIDC
- Client ID et Client Secret : Les identifiants de l'application
- Scope : Typiquement
openid profile email - Auto Register : Créer automatiquement les comptes utilisateurs
- Button Text : Le texte du bouton de connexion
# Exemple de configuration Authentik pour Immich
# Dans Authentik, créez un Provider OAuth2/OIDC avec :
# - Client Type: Confidential
# - Redirect URI: https://photos.votredomaine.fr/auth/login
# - Scopes: openid, profile, email
# Dans Immich (Administration → OAuth) :
# Issuer URL: https://auth.votredomaine.fr/application/o/immich/
# Client ID: votre-client-id
# Client Secret: votre-client-secret
# Scope: openid profile email
# Auto Register: Activé
# Storage Quota (Auto Register): 0 (illimité) ou une valeur en GoOptions de Stockage : Local et S3
Stockage Local
Par défaut, Immich stocke les fichiers sur le système de fichiers local, dans le répertoire défini par UPLOAD_LOCATION. La structure est organisée par utilisateur et par date. C'est l'option la plus simple et la plus performante pour les petites à moyennes installations.
Stockage S3 Compatible
Depuis la version 1.106, Immich supporte le stockage sur des buckets compatibles S3 (AWS S3, MinIO, Backblaze B2, Wasabi, Cloudflare R2, etc.). Cela ouvre la possibilité de :
- Stocker les photos sur un stockage objet moins coûteux
- Bénéficier de la réplication et de la durabilité du S3
- Séparer le stockage du compute
La configuration se fait dans le fichier .env ou directement depuis l'interface d'administration :
# Configuration S3 dans .env
IMMICH_S3_ENABLED=true
IMMICH_S3_BUCKET=immich-photos
IMMICH_S3_ENDPOINT=https://s3.eu-west-3.amazonaws.com
IMMICH_S3_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
IMMICH_S3_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
IMMICH_S3_REGION=eu-west-3Migration depuis Google Photos (Google Takeout)
La migration depuis Google Photos est l'un des cas d'usage les plus courants. Voici la procédure complète et éprouvée.
Étape 1 : Exporter depuis Google Takeout
- Rendez-vous sur takeout.google.com
- Sélectionnez uniquement Google Photos
- Choisissez le format d'export : .zip, taille 50 Go
- Lancez l'export et attendez la notification par email
- Téléchargez toutes les archives
Étape 2 : Préparer les Fichiers avec immich-go
L'outil immich-go (CLI officiel de la communauté) est le meilleur moyen d'importer proprement les données Google Takeout. Il gère les problèmes de métadonnées, les fichiers JSON compagnons, et les doublons.
# Installer immich-go
# Télécharger la dernière release depuis GitHub
wget https://github.com/simulot/immich-go/releases/latest/download/immich-go_Linux_x86_64.tar.gz
tar xzf immich-go_Linux_x86_64.tar.gz
sudo mv immich-go /usr/local/bin/
# Extraire les archives Google Takeout
mkdir -p /tmp/google-takeout
cd /tmp/google-takeout
for f in ~/Downloads/takeout-*.zip; do unzip -o "$f" -d .; done
# Importer dans Immich avec immich-go
immich-go -server=https://photos.votredomaine.fr \
-api-key=VOTRE_CLE_API \
upload from-google-photos \
/tmp/google-takeout/Takeout/Google\ PhotosÉtape 3 : Vérification et Nettoyage
# Vérifier le nombre de fichiers importés via l'API
curl -s -H "x-api-key: VOTRE_CLE_API" \
https://photos.votredomaine.fr/api/server/statistics | jq .
# immich-go génère un rapport des fichiers ignorés ou en erreur
# Consultez le fichier de log pour identifier les problèmes éventuelsL'outil immich-go gère automatiquement :
- La récupération des dates depuis les fichiers JSON de métadonnées Google
- La correspondance entre photos et leurs métadonnées (même quand les noms sont tronqués)
- La détection et l'exclusion des doublons
- La gestion des Live Photos (association photo + vidéo)
- La conservation des albums Google Photos
Performance et Hardware Recommandé
Configurations Types
| Scénario | CPU | RAM | Stockage | Photos/Vidéos |
|---|---|---|---|---|
| Usage personnel | 4 cores (Intel N100) | 8 Go | 1 To SSD + HDD | Jusqu'à 50k |
| Famille | 6 cores (i5/Ryzen 5) | 16 Go | 2-4 To | 50k-200k |
| Photographe | 8+ cores + GPU | 32 Go | 10+ To RAID | 200k-1M+ |
| Petite entreprise | 16+ cores + GPU | 64 Go | NAS dédié | 1M+ |
Conseils de Performance
- SSD pour la base de données : PostgreSQL bénéficie énormément d'un SSD. Même si vos photos sont sur un HDD, placez le répertoire
DB_DATA_LOCATIONsur un SSD. - SSD pour les thumbnails : Le dossier
upload/thumbsest constamment accédé. Un SSD améliore significativement la réactivité de l'interface. - GPU pour le ML : Un GPU NVIDIA (même d'entrée de gamme comme une GTX 1650) accélère drastiquement l'indexation ML initiale, passant de plusieurs jours à quelques heures pour une grande bibliothèque.
- RAM suffisante : Les modèles CLIP et de reconnaissance faciale consomment de la RAM. 8 Go est un minimum confortable ; 16 Go sont préférables si vous utilisez des modèles CLIP plus grands.
Comparaison avec les Alternatives
| Fonctionnalité | Immich | PhotoPrism | LibrePhotos | Nextcloud Photos |
|---|---|---|---|---|
| App mobile native | Oui (iOS + Android) | PWA uniquement | Non | Oui |
| Backup auto mobile | Oui (arrière-plan) | Non | Non | Oui (limité) |
| Recherche sémantique CLIP | Oui (multilingue) | Oui | Oui | Oui (via Recognize) |
| Reconnaissance faciale | Oui (InsightFace) | Oui (TensorFlow) | Oui | Oui (Recognize) |
| Support RAW | Oui (complet) | Oui | Limité | Limité |
| Transcodage HW | VAAPI, NVENC, QSV | FFmpeg | Non | Non |
| Stockage S3 | Oui | Non | Non | Oui (objectstore) |
| OAuth/OIDC | Oui | Non | Non | Oui |
| Multi-utilisateurs | Oui (avec quotas) | Limité | Oui | Oui |
| Vitesse de l'interface | Excellente | Bonne | Correcte | Moyenne |
| Rythme de développement | Très élevé | Modéré | Lent | Modéré |
| Licence | AGPL-3.0 | AGPL-3.0* | MIT | AGPL-3.0 |
* PhotoPrism propose une édition « Essentials » gratuite et une édition « Plus » payante avec des fonctionnalités supplémentaires.
Immich se distingue particulièrement par la qualité de ses applications mobiles, la rapidité de son interface web, et son rythme de développement effréné. C'est la solution qui se rapproche le plus de l'expérience Google Photos.
PhotoPrism est une alternative plus mature et stable, avec un focus sur l'indexation de bibliothèques existantes plutôt que le backup mobile.
LibrePhotos était prometteur mais son développement a considérablement ralenti, ce qui en fait un choix risqué pour de nouvelles installations.
Nextcloud Photos est intéressant si vous utilisez déjà Nextcloud, mais l'expérience est nettement en dessous des solutions dédiées, tant en termes de performance que de fonctionnalités ML.
Roadmap et Maturité du Projet
Immich a longtemps affiché un avertissement « ne pas utiliser comme seule solution de backup » sur sa page d'accueil. Cet avertissement, bien que prudent, reflétait l'évolution rapide du schéma de base de données entre les versions. En 2025-2026, le projet a atteint un niveau de maturité considérable :
- API stable : L'API v1 est désormais considérée stable avec un engagement de non-régression
- Migrations automatiques : Les mises à jour de schéma DB sont gérées automatiquement
- Tests extensifs : Suite de tests automatisés couvrant les scénarios critiques
- Communauté massive : Plus de 55 000 étoiles GitHub, des centaines de contributeurs
- Financement : L'entreprise FUTO (fondée par Eron Wolf) finance le développement à temps plein d'Alex Tran et de plusieurs développeurs
Fonctionnalités en Développement ou Récentes
- Tags manuels et automatiques : Système complet de tagging
- Édition de base : Rotation, recadrage, filtres basiques directement dans l'interface
- Amélioration continue du ML : Modèles plus précis et plus rapides
- Meilleure gestion des doublons : Détection et fusion intelligente
- Notifications : Alertes pour les albums partagés et les souvenirs
- Souvenirs : « Il y a X ans » comme Google Photos
Sauvegarde et Maintenance
Sauvegarde de la Base de Données
#!/bin/bash
# Script de backup PostgreSQL pour Immich
BACKUP_DIR="/mnt/backup/immich"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
# Dump de la base de données
docker exec immich_postgres pg_dumpall -U immich | gzip > "$BACKUP_DIR/immich_db_$DATE.sql.gz"
# Rotation des backups (garder les 30 derniers)
ls -t "$BACKUP_DIR"/immich_db_*.sql.gz | tail -n +31 | xargs -r rm
echo "Backup terminé : $BACKUP_DIR/immich_db_$DATE.sql.gz"Sauvegarde des Fichiers
# Utiliser rsync pour sauvegarder les uploads
rsync -avz --progress \
/mnt/data/immich/upload/ \
/mnt/backup/immich/upload/
# Ou avec Restic pour un backup incrémental chiffré
restic -r /mnt/backup/restic-immich backup \
/mnt/data/immich/upload \
--exclude="*.tmp" \
--tag immichMise à Jour d'Immich
cd /opt/immich
# Toujours sauvegarder avant une mise à jour
docker exec immich_postgres pg_dumpall -U immich > /tmp/immich_pre_update.sql
# Tirer les nouvelles images
docker compose pull
# Redémarrer avec les nouvelles versions
docker compose up -d
# Vérifier les logs pour d'éventuelles erreurs de migration
docker compose logs -f immich-serverConclusion
Immich s'est imposé comme la référence incontestable des solutions de gestion de photos auto-hébergées. En 2026, le projet offre une expérience qui rivalise véritablement avec Google Photos : backup mobile fluide, recherche intelligente par IA, reconnaissance faciale précise, interface web rapide et élégante, et un écosystème riche.
L'investissement initial pour l'installation et la migration est certes plus important que de simplement activer la synchronisation Google Photos, mais les bénéfices sont considérables :
- Vie privée totale : Vos photos ne quittent jamais votre infrastructure
- Aucune limite de stockage artificielle (seulement la capacité de vos disques)
- Aucune dépendance vis-à-vis d'un fournisseur cloud
- Contrôle complet sur vos données et leur traitement
- Pas de compression forcée de vos photos et vidéos
Si vous hésitez encore, la meilleure approche est de commencer par une installation de test, d'importer quelques centaines de photos pour évaluer l'interface et les fonctionnalités ML, puis de planifier votre migration complète. Le chemin vers la souveraineté numérique commence souvent par la reprise de contrôle sur vos souvenirs photographiques.
Ressources utiles :
Site officiel Immich
GitHub Immich
Documentation officielle
immich-go (outil de migration)