SSD Nodes Learn 🎉 VPS dès $4.99/mois
Guides Matt ConnorPar Matt Connor · Mis à jour le 2026-08-07

PhotoPrism ou Immich : quel serveur photo choisir ?

Comparez PhotoPrism et Immich : RAM minimale réelle, applications mobiles, cartes et commandes de sauvegarde exactes pour un déploiement sur VPS.

PhotoPrism vs Immich : réponse courte

PhotoPrism et Immich répondent à deux besoins différents. Il ne s’agit pas de deux versions du même produit. Immich remplace Google Photos : une application mobile sauvegarde automatiquement les photos de votre appareil, et la timeline obtenue reste familière pour quiconque abandonne la galerie de son téléphone. PhotoPrism organise une photothèque existante : il indexe les dossiers de fichiers présents sur le disque, lit leurs métadonnées, les place sur une carte et laisse les fichiers exactement à leur emplacement d’origine.

Choisissez Immich si le problème est le suivant : « mon téléphone est plein et je veux quitter Google Photos ». Choisissez PhotoPrism si le problème est le suivant : « j’ai 400 GB de photos sur un disque et je ne retrouve rien ». Les deux sont open source, fonctionnent sous forme de conteneurs Docker sur un VPS standard et indexent et recherchent votre photothèque sans envoyer quoi que ce soit à un tiers.

La différence de philosophie, et pourquoi elle détermine tout

Immich gère les fichiers. Vous lui indiquez un emplacement d’importation, l’application mobile ou l’outil d’importation web y envoie les originaux, puis Immich les stocke dans son propre chemin et avec sa propre convention de nommage. La base de données contient les informations de référence sur les albums, les visages et la recherche. Cette conception explique la qualité de l’expérience mobile : le serveur connaît en permanence l’état complet de chaque élément.

PhotoPrism lit les fichiers. Vous montez un dossier originals que vous gérez déjà, puis PhotoPrism crée un index à partir de son contenu. L’arborescence reste la vôtre. Si vous supprimez PhotoPrism demain, les photos restent dans les mêmes dossiers, avec les mêmes noms, et PhotoPrism aura écrit à côté des fichiers des fichiers YAML sidecar décrivant les informations détectées.

Cette seule différence explique l’essentiel du reste. Immich offre une bonne prise en charge mobile parce qu’il contrôle l’importation. PhotoPrism facilite la gestion d’une bibliothèque existante parce qu’il ne modifie pas votre structure. Immich est le meilleur choix pour une famille dont les photos se trouvent sur les téléphones. PhotoPrism est le meilleur choix pour une archive stockée sur un disque.

Ressources matérielles : Immich en demande davantage

Les seuils de mémoire documentés sont très différents. Sur un petit VPS, c’est généralement le facteur déterminant.

ChartDocumented memory requirement, as of July 2026
The data behind this chart
[
  {
    "label": "Immich",
    "min_ram_gb": 6,
    "recommended_ram_gb": 8
  },
  {
    "label": "PhotoPrism",
    "min_ram_gb": 3,
    "recommended_ram_gb": 4
  }
]

Immich indique 6 Go de RAM au minimum et 8 Go recommandés. La documentation précise qu’une machine de 4 Go ne peut l’exécuter qu’avec le machine learning désactivé. PhotoPrism indique 3 Go de mémoire physique et deux cœurs CPU. Le projet précise que la quantité de RAM doit correspondre au nombre de cœurs.

L’écart est réel. Il vient du conteneur de machine learning. Immich exécute ses modèles dans un service immich-machine-learning séparé qui charge en mémoire CLIP (contrastive language image pretraining) et les modèles de détection des visages. Sur une machine de 2 Go, le kernel tue ce conteneur. Docker indique alors une sortie avec le code 137, ce qui correspond à un kill pour manque de mémoire. Les modèles TensorFlow de PhotoPrism sont plus petits, et l’application se dégrade au lieu de s’arrêter : sur les machines dotées de 1 Go ou moins, elle désactive la conversion RAW et TensorFlow plutôt que de planter.

Les deux projets recommandent du swap. La documentation de PhotoPrism demande explicitement au moins 4 Go de swap sur le serveur. Ajoutez-le avant d’installer l’une ou l’autre application.

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h

free -h doit maintenant afficher une ligne Swap: indiquant 4.0Gi. S’il affiche 0B, alors swapon a échoué, généralement parce que le système de fichiers ne prend pas en charge fallocate, et sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 est utilisé comme solution de repli. Les plafonds de mémoire des conteneurs comptent également ici. Définir des limites de mémoire dans Docker Compose permet d’empêcher un service trop gourmand de faire tomber toute la machine.

Une autre exigence est souvent négligée. La base de données Postgres d’Immich doit se trouver sur un système de fichiers Unix classique, avec de véritables propriétaires et permissions, sur un stockage local, jamais sur un partage réseau. PhotoPrism indique la même exigence pour ses fichiers de base de données. Aucune de ces applications ne doit utiliser une base de données stockée dans un object store monté.

Comment installer chaque solution

Les deux installations reposent sur un fichier Compose fourni par l’éditeur et une commande. Installez d’abord Docker Engine et le plugin Compose, comme indiqué dans notre guide sur Docker Compose sur un VPS.

Immich publie son fichier Compose et un fichier d’environnement d’exemple avec chaque release.

sudo mkdir -p /opt/immich && cd /opt/immich
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

Modifiez .env avant de démarrer quoi que ce soit. UPLOAD_LOCATION est le dossier où seront stockées vos photos originales. DB_PASSWORD doit être modifié par une valeur contenant uniquement les caractères A-Za-z0-9, car les caractères spéciaux cassent la chaîne de connexion. Démarrez ensuite le service.

docker compose up -d
docker compose ps

L’interface web est disponible sur le port 2283. Le premier compte créé depuis cette page devient administrateur. Accédez-y et créez immédiatement ce compte au lieu de laisser une instance ouverte sur Internet.

PhotoPrism fournit un fichier Compose qui inclut déjà MariaDB.

sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yaml

Ouvrez compose.yaml et modifiez PHOTOPRISM_ADMIN_PASSWORD avant le premier démarrage. La documentation est claire sur ce point : l’application démarre avec le mot de passe initial présent dans ce fichier, sa longueur minimale est de 8 caractères et la valeur par défaut ne doit jamais être utilisée sur un serveur public. Configurez également le volume originals pour utiliser le dossier contenant vos photos.

docker compose up -d
docker compose logs -f photoprism

PhotoPrism est disponible sur le port 2342 avec l’utilisateur admin. Aucune de ces deux applications ne doit être exposée directement. Placez un reverse proxy avec TLS (transport layer security) devant l’application, comme dans cet exemple de Nextcloud auto-hébergé avec Docker, TLS et sauvegardes.

Lequel propose la meilleure application mobile

C’est sur ce point que les deux projets sont le plus éloignés. C’est aussi la raison pour laquelle la plupart des utilisateurs choisissent Immich.

Immich propose des applications officielles pour Android et iOS. Elles sauvegardent automatiquement les photos de la pellicule en arrière-plan. Les nouvelles photos sont donc transférées depuis le téléphone sans qu’il soit nécessaire d’ouvrir une application. L’application nécessite un endpoint HTTPS. Le reverse proxy est donc indispensable si vous prévoyez de l’utiliser depuis l’extérieur de votre domicile.

PhotoPrism ne propose pas d’application native officielle. Le projet fournit une progressive web app que vous pouvez ajouter à l’écran d’accueil depuis le navigateur. Il documente également WebDAV (web distributed authoring and versioning) comme méthode de synchronisation depuis un téléphone. Le projet recommande pour cela une application tierce appelée PhotoSync, configurée vers le répertoire /import/ ou /originals/ via WebDAV. Cette solution fonctionne, mais elle repose sur une application tierce payante pour effectuer une tâche qu’Immich gère directement dans son propre client.

Si la sauvegarde automatique des photos depuis les téléphones de plusieurs membres de la famille est indispensable, le choix est clair : Immich.

Ce que le machine learning vous apporte réellement

Immich effectue une recherche sémantique dans votre bibliothèque avec CLIP. Une requête comme « vélo rouge dans la neige » trouve ainsi des photos que personne n’a jamais étiquetées. Le logiciel détecte et regroupe également les visages, et recherche les doublons. L’indexation d’un import volumineux sur CPU peut s’exécuter pendant plusieurs heures en arrière-plan. C’est normal et un GPU (graphics processing unit) n’est pas nécessaire.

PhotoPrism classe les images avec TensorFlow et leur attribue des labels. Il détecte les visages et les regroupe par personne. Il lit aussi les métadonnées de localisation pour créer une carte des lieux. Cette carte est la fonction qui fidélise les utilisateurs : parcourir une bibliothèque indexée selon le lieu où les photos ont été prises constitue une manière réellement différente d’explorer vingt ans de photos. La reconnaissance faciale est incluse dans l’édition gratuite Community. Les abonnements payants Essentials et Plus ajoutent notamment des couches cartographiques plus riches, davantage de rôles utilisateur et une interface de gestion des utilisateurs. En juillet 2026, leur prix commence à quelques euros par mois.

Immich est entièrement gratuit et ne propose aucune offre payante. Le cœur de PhotoPrism est gratuit, avec des fonctionnalités payantes optionnelles.

Les sauvegardes déterminent si vous conservez vos données

Un serveur photo sans sauvegarde risque de perdre toutes les photos de la famille à la première panne de disque. Les deux applications nécessitent deux sauvegardes : celle de la base de données et celle des fichiers.

Pour Immich, exportez la base de données depuis le conteneur Postgres et copiez l’emplacement des fichiers importés.

docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gz

Sauvegardez ensuite UPLOAD_LOCATION. Les dossiers qui contiennent les données irremplaçables sont upload, library et profile. Les dossiers thumbs et encoded-video peuvent être régénérés, au prix de plusieurs heures de calcul CPU. Un export de la base de données ne suffit pas à lui seul à restaurer les données, car il contient uniquement les métadonnées.

Pour PhotoPrism, l’index possède sa propre commande.

docker compose exec photoprism photoprism backup -i -f

Cette commande écrit un export SQL sous storage/backup/. Copiez ensuite le dossier originals et le dossier storage. PhotoPrism écrit également des fichiers YAML sidecar qui décrivent chaque photo. Un index perdu peut donc être reconstruit à partir des seuls fichiers. C’est un avantage important pour une archive que vous prévoyez de conserver pendant plusieurs décennies.

Quelle que soit l’application choisie, envoyez régulièrement ces sauvegardes vers un autre serveur avec des sauvegardes restic chiffrées et dédupliquées vers un stockage distant. Une sauvegarde stockée sur le même disque que la photothèque n’est pas une sauvegarde.

Lequel devez-vous utiliser

Utilisez Immich si vos photos se trouvent sur des téléphones, si plusieurs personnes doivent sauvegarder le contenu de leur pellicule et si vous pouvez attribuer au serveur 6 GB de RAM ou plus. C’est ce qui se rapproche le plus de Google Photos en auto-hébergement, et l’expérience mobile est son principal intérêt. Notre guide d’installation détaillé d’Immich présente en détail les problèmes liés au manque de mémoire et les pièges des mises à niveau.

Utilisez PhotoPrism si vous avez déjà une archive photo sur disque, si vous accordez de l’importance aux cartes et aux métadonnées tout en souhaitant conserver votre propre arborescence, ou si votre VPS dispose de 4 GB de RAM et que vous préférez une bibliothèque fonctionnelle à une bibliothèque qui utilise le swap. C’est le meilleur outil de curation et il sollicite moins les petites configurations matérielles.

Utiliser les deux est également pertinent. Immich gère l’import quotidien des photos des téléphones. Une fois par an, vous triez les photos à conserver dans votre archive, puis vous laissez PhotoPrism les indexer. Ils ne se gênent pas, car PhotoPrism lit les répertoires tandis qu’Immich utilise son propre stockage.

FAQ

PhotoPrism et Immich peuvent-ils partager le même dossier de photos ?

Pas de manière sûre dans les deux sens. PhotoPrism lit un dossier originals et écrit des fichiers YAML sidecar à côté de vos images, tandis qu’Immich s’attend à gérer le contenu de son emplacement d’upload. Vous pouvez configurer PhotoPrism pour utiliser une copie en lecture seule du dossier library d’Immich afin de le parcourir, mais ne laissez pas les deux applications gérer les mêmes fichiers. Le storage template d’Immich peut déplacer ou renommer des fichiers utilisés par PhotoPrism pendant l’indexation.

Immich est-il suffisamment stable pour conserver l’unique copie de mes photos ?

Aucune application auto-hébergée ne doit conserver l’unique copie de quoi que ce soit. Immich publie souvent des changements incompatibles, et un docker compose pull imprudent peut empêcher la base de données de démarrer. Épinglez donc votre version et lisez les release notes avant toute mise à niveau. Conservez les fichiers originaux dans une sauvegarde hors du serveur pour limiter le risque.

Pourquoi le conteneur de machine learning d’Immich redémarre-t-il sans cesse ?

Il est tué parce qu’il utilise trop de mémoire. Exécutez docker compose ps et recherchez l’arrêt du service de machine learning avec le code 137. Ce code correspond au mécanisme du kernel qui tue les processus en cas de manque de mémoire. Ajoutez du swap, ou définissez une limite de mémoire pour le conteneur afin qu’il soit bridé plutôt que tué. Vous pouvez aussi désactiver complètement le machine learning sur une machine équipée de 4 GB de RAM. La recherche ne fonctionnera plus sans lui, mais le reste d’Immich continuera de fonctionner.

PhotoPrism a-t-il besoin de MariaDB ou SQLite suffit-il ?

SQLite fonctionne et convient à une bibliothèque personnelle, mais PhotoPrism se limite à quatre workers dans ce cas. La documentation recommande de passer à MariaDB, qui gère mieux les accès concurrents élevés. Le fichier compose fourni par le projet inclut déjà MariaDB. La méthode recommandée est donc aussi celle utilisée par défaut.

Quelle capacité disque prévoir en plus de la taille de ma bibliothèque ?

Ajoutez 10 à 20 pour cent à la taille de vos originaux, quelle que soit l’application. Cela couvre les miniatures générées et les aperçus vidéo transcodés. Une collection de 200 GB nécessite environ un volume de 300 GB, en prévoyant aussi de l’espace pour la base de données, la copie de sauvegarde locale et la croissance future.