09/12/2025

Stockage

Installez immich, l’alternative open source à Google Photos et iCloud Photos

I. Présentation

Dans le monde du self-hosted, immich est une étoile montante : cette application se présente comme une alternative open source aux services Cloud comme Google Photos. Quelles sont ses fonctionnalités ? Comment installer immich ? C'est ce que nous allons voir dans ce tutoriel !

Face à l’augmentation constante des volumes de photos et de vidéos, entreprises comme particuliers sont de plus en plus nombreux à rechercher une solution de gestion pour stocker et gérer leurs médias, tout en préservant la confidentialité de leurs données. Ce qu'il est important de comprendre, c'est qu'immich est orienté photos et vidéos : cette solution n'a pas pour vocation à accueillir vos documents divers et variés.

Pour un aperçu complet et détaillé, je vous invite à regarder ma vidéo :

II. Pourquoi choisir immich ?

Immich est une application open source écrite principalement en TypeScript, qui permet de sauvegarder, consulter, organiser et partager ses photos et vidéos depuis n'importe quel appareil. Elle est conçue pour être auto-hébergée (self-hosted) et accessible depuis différents types d'appareils grâce à l'interface web et aux applications mobiles pour Android et iOS.

Depuis sa version 2.0, immich a franchi une étape importante en termes de fonctionnalités, de stabilité et de performance, la rendant de plus en plus attractive pour remplacer des services cloud propriétaires comme Google Photos, Amazon Photos ou iCloud Photos. En effet, immich 2.0 est disponible depuis le 9 octobre 2025 et c'est la première version considérée comme stable : après 1 337 jours de développement et 271 versions publiées sur GitHub.

La solution immich suscite un réel engouement (plus de 81 000 étoiles sur GitHub), et c'est le reflet de l’intérêt croissant pour des outils permettant de reprendre le contrôle de ses données.

A. Les fonctionnalités d'immich

Le rythme de développement d'immich est soutenu, donc il y a très régulièrement de nouvelles fonctionnalités. La feuille de route est disponible sur cette page. Mais, à ce jour, nous pouvons citer les fonctionnalités suivantes (liste non exhaustive) :

  • Un espace par utilisateur, avec gestion des favoris et un dossier verrouillé protégé par code PIN
  • Une corbeille par utilisateur, avec suppression automatique au bout de 30 jours.
  • Un quota par utilisateur (en Go)
  • Sauvegarde automatique des photos/vidéos depuis mobile (Android et iOS)
  • Recherche par métadonnées (lieu, date, appareil, etc.)
  • Consultation en ligne des médias, via différents modes (dont le mode carte)
  • Reconnaissance faciale intégrée (avec OpenCV ou ML backend)
  • Détection de doublons
  • Support complet des vidéos, y compris la génération de miniatures
  • Création d’albums collaboratifs et partage sécurisé (ou simple partage public)
  • Authentification via OAuth2, LDAP, ou la base d'utilisateurs internes
  • API complète

B. Comment installer immich ?

La solution immich s'installe facilement par l'intermédiaire de Docker, ce qui permet un déploiement avec différents outils et plateformes : Portainer, Unraid, TrueNAS Scale ainsi que sur un NAS Synology (ou d'une autre marque).

Voici quelques liens utiles :

III. Installer immich avec Docker

Avant de démarrer, vérifiez que Docker est bien installé et opérationnel sur votre machine. Dans cet exemple, j’utilise un système Debian 13 avec Docker préinstallé, mais vous pouvez tout à fait utiliser une autre distribution. Si nécessaire, vous pouvez vous appuyer sur ce tutoriel pour l’installation de Docker :

A. Créer l'arborescence de dossiers

Désormais, nous allons préparer l'arborescence de répertoires utiles au bon fonctionnement d'immich. Les données seront stockées dans /opt/docker-compose/.

sudo mkdir -p /opt/docker-compose/immich/{library,postgres,model-cache}

Dans le répertoire /opt/docker-compose/immich, il y a trois sous-dossiers :

  • library : il contiendra la bibliothèque par défaut, c'est dans ce répertoire que vos fichiers seront stockés.
  • postgres : il contiendra les données de PostgreSQL, le moteur de base de données qui sera lié à immich.
  • model-cache : il contiendra le cache du modèle de machine learning.

La structure finale attendue, en tenant compte des futurs fichiers que nous allons créer, est la suivante :

immich/
├── library
├── docker-compose.yml
├── .env
├── model-cache
└── postgres

B. Le fichier Docker Compose pour immich

Les développeurs d'immich ont eu la bonne idée de mettre à disposition des utilisateurs un fichier Docker Compose prêt à l'emploi. Il est compatible avec la dernière version de l'application.

Positionnez-vous dans le répertoire de l'application :

cd immich/

Puis, téléchargez ce fichier :

sudo wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

Le fichier docker-compose.yml officiel déploie 4 conteneurs :

  • immich_server : ce conteneur exécute le serveur principal d’immich, qui fournit l’API, l’interface web et gère les opérations liées aux photos et vidéos (téléversement, organisation, partage, etc.).
  • immich_machine_learning : ce service gère les tâches d’analyse d’images via des modèles de machine learning, notamment pour la reconnaissance faciale.
  • immich_redis : Redis est utilisé comme système de file d’attente et de cache, permettant d’optimiser les performances globales de l'application.
  • immich_postgres : ce conteneur héberge la base de données PostgreSQL, qui stocke toutes les métadonnées des fichiers (utilisateurs, albums, balises, etc.).

Il n'est pas nécessaire de modifier directement ce fichier, car plusieurs variables d'environnement sont associées à un fichier distinct.

C. Configurer les variables d'environnement

Un second fichier contenant les variables d'environnement à configurer est disponible sur le GitHub du projet. Sur le même principe, nous allons le récupérer :

sudo wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Suite à l'exécution de cette commande, vous obtenez un fichier .env dont voici le contenu original :

# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=./postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zone>
# TZ=Etc/UTC

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=postgres

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

Dans ce fichier, nous pouvons voir les références aux dossiers library et postgres créés précédemment. Éventuellement, on aurait pu ne pas créer le répertoire library pour faire pointer la bibliothèque vers un autre emplacement, ce qui implique de modifier la valeur de UPLOAD_LOCATION.

Ce que vous devez modifier à minima, c'est le mot de passe pour la base de données (sans caractères spéciaux, ni espace). En ligne de commande, vous pouvez générer une valeur aléatoire via cette commande :

cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1

Puis, éditez le fichier :

sudo nano .env

Collez la valeur générée aléatoirement au niveau de la variable DB_PASSWORD :

DB_PASSWORD=GPnlxIIlLKo5Uj8oEWf2EqVSZ5TZrCHy

Un second changement est à effectuer pour spécifier le fuseau horaire. L'exemple ci-dessous associe le fuseau horaire correspondant à Paris, pour la France, donc. La variable TZ doit être personnalisée :

TZ=Europe/Paris

Enregistrez et fermez ce fichier.

D'autres variables d'environnement peuvent être configurées. Tout est décrit dans la documentation :

D. Lancer la construction du projet

L’environnement est désormais prêt, nous pouvons procéder au déploiement du projet avec Docker. Cette étape va permettre de télécharger les images nécessaires et de créer les conteneurs. Placez-vous à la racine du projet, soit dans /opt/docker-compose/immich/, puis exécutez la commande suivante :

sudo docker compose up -d

Patientez pendant la création.

+] Running 6/6
 ✔ Network immich_default             Created                                                                                                             
 ✔ Volume immich_model-cache          Created                                                                                                             
 ✔ Container immich_postgres          Started                                                                                                             
 ✔ Container immich_redis             Started                                                                                                             
 ✔ Container immich_machine_learning  Started                                                                                                             
 ✔ Container immich_server            Started

Une fois les conteneurs actifs, ils apparaîtront dans la liste :

sudo docker ps

Si besoin de debug, vous pouvez aussi afficher les journaux des conteneurs de votre projet via la commande indiquée ci-dessous.

sudo docker compose logs -f --tail 100

Quelques minutes plus tard, vous devriez avoir accès à l'interface web d'immich : http://<adresse IP ou nom DNS>:2283. Le numéro de port est celui précisé par défaut dans le fichier Docker Compose. Ce n'est pas très important puisque par la suite, il sera nécessaire de publier l'application avec un reverse proxy.

E. Configuration initiale d'immich

La première étape de la configuration consiste à configurer le compte administrateur. Vous devez spécifier un e-mail, un nom de compte et un mot de passe.

Suite à la première connexion, un assistant de bienvenue se lance et il va vous accompagner pour la configuration initiale. Tout ce que vous allez configurer ici est modifiable par la suite.

Choisissez votre camp : thème clair ou thème sombre.

Puis, la langue pour l'interface de l'application :

immich présente l'avantage d'être transparent à partir du moment où un service externe est utilisé. Surtout, il est possible de désactiver les services externes, ce qui implique de faire une croix sur certaines fonctionnalités. Ici, il s'agit d'un service de cartographie hébergé par immich, mais tout de même externe vis-à-vis de votre instance locale, et GitHub pour la vérification des mises à jour.

Dans le même esprit pour la diffusion des contenus via la technologie Google Cast.

Vous devez ensuite choisir d'activer ou non le moteur de modèle de stockage, dont l'objectif est d'organiser automatiquement les fichiers en fonction de leurs noms. Plusieurs modèles sont proposés, ce qui peut permettre d'avoir un dossier par mois, ou même pour chaque jour de chaque mois.

Pour finir, un rappel justifié est effectué concernant la sauvegarde des données. En effet, l'auto-hébergement, c'est une chose, mais vous êtes garant de la protection et de la sauvegarde de vos données.

IV. Découverte d'immich

L'interface d'immich se décompose en deux sections principales : la partie utilisateur et la partie administrateur. Autrement dit, la partie pour envoyer, organiser et consulter les photos, où chaque utilisateur à son espace, et la partie où l'on peut créer des utilisateurs et configurer les paramètres de l'instance immich.

Lors de la création d'un utilisateur, vous pouvez lui associer un quota. Vous pouvez aussi lui demander de changer son mot de passe à la première connexion.

Sur le serveur, les bibliothèques des utilisateurs sont stockées dans le répertoire library/library, avec un sous-dossier par utilisateur. Le dossier admin correspond à l'espace de stockage de l'utilisateur créé au tout début. Ensuite, les autres dossiers ne portent pas le nom de l'utilisateur, mais de son ID unique : c'est préférable puisque le nom d'utilisateur est modifiable à tout moment.

library/library/admin/
├── 2024
│   ├── 06
│   ├── 07
│   ├── 08
│   └── 09
└── 2025
    ├── 08
    └── 09
library/library/975e14f1-234d-44f8-96a9-c2ef1484a703/
└── 2025
    └── 07

L’interface moderne d’Immich présente les photos/vidéos de l'utilisateur selon différents modes d'affichage. Les clichés sont automatiquement regroupés de façon chronologique, par date, affichés sous forme de vignettes. La barre latérale permet d’accéder rapidement à différentes vues, telles que les albums, les favoris ou encore la corbeille.

Immich propose également une navigation par lieux, où chaque média est positionné sur la carte mondiale. Mais, attention, cette carte interactive s'appuie sur les métadonnées EXIF des photos pour obtenir les coordonnées GPS : sinon, c'est-à-vous de définir l'emplacement manuellement (le traitement par lot est possible). Dans tous les cas, c'est plutôt appréciable et surtout, cela offre à l'utilisateur une expérience proche de celle proposée par Google Photos. Enfin, la fonction de reconnaissance faciale permet de retrouver facilement les photos d'une même personne, comme illustré ici avec mon visage.

La visionneuse intégrée à Immich permet de visualiser les différents médias, que ce soit les photos ou les vidéos. Vous pouvez aussi accéder aux informations de chaque média (emplacement, nom, appareil utilisé, etc.). Par ailleurs, il y a une gestion par album : on peut regrouper des médias par période ou par thème, ce qui est plutôt idéal pour regrouper les photos d'un événement ou de vos vacances. Par ailleurs, Immich permet également le partage sécurisé d’albums et de média individuellement, via un lien personnalisable, avec des options de protection telles que mot de passe et expiration automatique. Immich n'est pas une solution collaborative à proprement parler, mais il y a tout de même cette notion de partage.

L’interface d’administration d’Immich donne accès à l’ensemble des paramètres système. L’administrateur peut configurer son instance en parcourant les options réparties en sections claires et bien organisées. Parmi ces options, on retrouve notamment la gestion de l’authentification (mot de passe, OAuth, etc... mais, attention, pas de MFA), la configuration des résolutions d’images, ou encore les tâches d’arrière-plan pour l’indexation ou le traitement automatisé.

Vous pouvez aussi ajouter des bibliothèques externes, ce qui est utile si l’on souhaite intégrer d'autres sources de médias (soit d'autres répertoires). On retrouve aussi des options avancées pour contrôler la journalisation, la corbeille, les notifications par courriel, ou encore les paramètres de transcodage vidéo.

Enfin, il est intéressant de noter que les boutons situés en haut de l’écran permettent d’exporter ou d’importer la configuration au format JSON. Utile pour faire une sauvegarde de la configuration avant une modification importante ou simplement une fois qu'elle vous convient.

L'application immich est assez gourmande en termes de mémoire vive (RAM) et CPU à cause de ses fonctionnalités de machine learning (apprentissage automatique). Celles-ci servent notamment à détecter les photos en doublon et effectuer la reconnaissance des visages. Si besoin, vous pouvez désactiver l'apprentissage automatique dans les paramètres, ou alors, utiliser un autre modèle, comme buffalo_s (moins gourmand) à la place de buffalo_s (par défaut et plus pertinent, voir cette page).

V. L'application mobile immich

L'application immich pour Android et iOS est indispensable pour profiter pleinement de la solution. En effet, la majorité des personnes utilisent leur smartphone pour prendre des photos et des vidéos : immich propose de les sauvegarder automatiquement sur votre serveur. Sur le même principe que ce qui est proposé par Google Photos, iCloud, etc.

Dès le départ, il convient de renseigner l'adresse du serveur immich, ainsi que son identifiant et son mot de passe. Ceci permet d'avoir un accès complet à sa bibliothèque de photos et de vidéos, y compris à la corbeille, à l'archive et au répertoire protégé par un code PIN. L'application contient de nombreuses fonctionnalités, dont certaines très sympa comme le fait de basculer automatiquement entre l'adresse locale du serveur et l'adresse externe en fonction du contexte de connexion (réseau Wi-Fi de votre domicile VS réseau externe).

La fonctionnalité de sauvegarde sert à envoyer automatiquement les photos et les vidéos de votre smartphone (ou tablette) vers le serveur immich. Vous pouvez tout sauvegarder, ou uniquement certains albums.

Néanmoins, je suis assez mitigé sur cette fonctionnalité pourtant essentielle. En effet, l'application semble avoir des difficultés à détecter tous les nouveaux médias, ce qui fait que la synchronisation peut s'avérer incomplète. Il y a plusieurs issues ouvertes en ce sens, donc ce problème semble connu : espérons que la stabilité soit améliorée sur ce point. Cependant, tous les utilisateurs ne semblent pas rencontrer ce problème, donc testez de votre côté et vérifiez que la synchronisation soit complète. Vous pouvez tout à fait envoyer manuellement les fichiers sur le serveur, cela fonctionne très bien.

VI. Conclusion

Immich 2.0 s'impose comme une alternative mature et sérieuse pour la gestion de photos et vidéos sans dépendre de Google Photos ou d'un autre service Cloud. Grâce à son interface moderne, ses fonctionnalités de cartographie et de reconnaissance faciale, ainsi que la gestion d'albums, immich répond aux besoins des utilisateurs habitués aux solutions Cloud. L'avantage ici étant de retrouver la maitrise de vos données !

Enfin, même si immich est une solution open source que vous pouvez utiliser sans débourser un centime, sachez que le soutien financier est essentiel pour assurer la pérennité du projet. C'est le nerf de la guerre pour chaque projet open source. Même si c'est totalement facultatif, il y a des licences serveur à 100 dollars et des licences par utilisateur à 25 dollars (à vie). Le fait de payer permet de soutenir le projet, mais vous n'aurez pas de fonctionnalités en plus.

Besoin d'une solution self-hosted pour stocker, synchroniser et partager vos données ? Découvrez Sync-in, une solution française.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

6 commentaires sur “Installez immich, l’alternative open source à Google Photos et iCloud Photos

  • Merci ! Je l’utilise depuis presque un an, c’est top.
    Dommage qu’il n’y ait pas de synchronisation comme sur Google Photos : quand on supprime une photo du téléphone, elle reste sur le serveur Immich.
    C’est dommage qu’il n’existe pas encore un mode « miroir » entre les deux, comme le font Google Photos ou iCloud.

    Répondre
    • Moi ça fonctionne depuis que j’ai désactiver la synchro Google Photos.
      Si je supprimes une photo du tel (depuis l’appli Immich), il me la supprime bien sur le tel aussi (il me demande de valider)

      Répondre
    • Bah, si.
      Il faut activer la fonctionnalité dans les paramètres pour la synchro web-téléphone.
      Et pour la supprimer du serveur, il suffit de la supprimer du téléphone *depuis l’application* et pas une galerie quelquonque.

      Répondre
  • Avec Immiche, les photos sont stockées en clair sur le serveur il me semble ? Sauf si ça a changé depuis que je l’ai testé.
    Ce que je veux dire par là c’est que si on a un accès bash, on peut récupérer toutes les images sans sécurités.
    C’est ça qui me freine le plus.

    Répondre
  • Hello
    Quelqu’un à un tuto pour passer en https ? C’est dommage de ne pas avoir inclu ça dans cet article .
    Merci

    Répondre
  • Je viens de passer plusieurs jours à transférer ma photothèque 40000+ photos et vidéos sur immich en espérant obtenir une meilleure interface de visualisation qu’avec piwigo, et de fait, c’est meilleur. Mais côté stockage et ressources graphiques, c’est le délire! Mes 40k photos occupent 170 GB bruts, mais, après calcul des images dérivées, je passe à 522 GB POUR UN SEUL UTILISATEUR! J’ai une douzaine d’utilisateurs et immich recalcule tout pour chaque utilisateur. Donc, non seulement chaque utilisateur va devoir patienter infiniment pendant qu’immich recalcule 12 fois les mêmes dérivés, mais le stockage total que cela pourrait générer est de plus de 4 To. Bon à savoir avant de se lancer, surtout si vous envisagez de le faire sur un NAS quasi dépourvu de ressources graphiques.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.