Aller au contenu

Immich 3.0 : nouveautés utiles et points à vérifier avant migration

Cryptolab.re
Auteur
Cryptolab.re
Cryptolab est un blog personnel où je documente mes expérimentations techniques : infra, self-hosting, réseau, crypto et projets parfois inutiles, souvent instructifs.
Sommaire

Immich 3.0 a été publié le 1er juillet 2026. C’est la première version majeure depuis le passage en stable (v2.0.0) en octobre 2025. Le projet reste l’une des alternatives open source les plus sérieuses à Google Photos, avec une base d’utilisateurs déjà importante.

Cette version introduit plusieurs fonctionnalités attendues, dont l’édition photo non destructive sur mobile, un système de workflows, le transcodage vidéo en temps réel, et des vérifications d’intégrité pour la bibliothèque. Elle marque aussi la fin de certaines fonctionnalités et API dépréciées.

En bref
#

  • Date de sortie : 1er juillet 2026 (v3.0.0), suivie de v3.0.1 le 2 juillet
  • Migration : modifier IMMICH_VERSION=v3 dans le fichier .env, puis docker compose pull && docker compose up -d
  • Points de vigilance : principalement côté API (formats de réponse, endpoints supprimés). Les utilisateurs standards ne sont pas impactés dans l’usage courant
  • pgvecto.rs retiré : les instances utilisant cette extension PostgreSQL doivent migrer vers VectorChord
  • Nouveautés majeures : édition mobile non destructive, workflows (aperçu), HLS (aperçu), OCR mobile, vérifications d’intégrité, page “Récemment ajoutés”

Édition non destructive sur mobile
#

La fonction d’édition photo, déjà disponible sur le web depuis la v2.5.0, arrive sur les applications mobiles. Elle permet de recadrer, faire pivoter et ajuster les photos sans modifier le fichier d’origine. Les modifications sont réversibles et synchronisées entre le mobile et le web.

Capture officielle de l’éditeur photo mobile Immich

L’ancien système d’édition mobile, qui créait de nouveaux fichiers à chaque modification, est remplacé. Certaines fonctions ont été temporairement retirées (recoloration, édition des live photos, édition des fichiers locaux). L’équipe prévoit de les réintégrer dans des versions futures.

Workflows (aperçu)
#

Les workflows sont accessibles depuis la section Utilitaires de l’interface web. Ils permettent de créer des automatisations en enchaînant des déclencheurs, des filtres et des actions via un éditeur visuel par glisser-déposer.

Capture officielle de l’éditeur de workflows Immich avec un workflow d’archivage

L’exemple montré dans la release note archive automatiquement les uploads dont le nom contient screenshot, puis peut les ajouter à un album. C’est le genre d’automatisation à tester sur un périmètre réduit avant de l’activer sur une bibliothèque complète.

L’éditeur propose deux modes :

  • Visuel : construction par blocs, adapté à la découverte
  • JSON : export et partage de configurations avancées

Un déclencheur lance l’exécution, puis chaque étape (filtre ou action) est évaluée séquentiellement. Les workflows peuvent être partagés entre instances via le format JSON.

Cette fonction est encore en aperçu. L’équipe encourage les retours pour orienter les développements futurs.

Transcodage vidéo en temps réel (aperçu)
#

Immich peut désormais transcoder les vidéos à la volée, sans générer de fichiers de pré-transcodage. Les avantages incluent :

  • changement de qualité manuel ou automatique
  • transcodage vers le codec le plus adapté au client
  • réduction du stockage disque lorsque le pré-transcodage est désactivé
  • possibilité de remuxer (sans transcodage) quand la bande passante le permet (pas encore implémenté)

Fonction expérimentale, disponible uniquement sur le web pour le moment. L’application mobile suivra dans une version ultérieure. L’activation se fait dans les paramètres d’administration (Transcodage temps réel).

Capture officielle des paramètres de transcodage vidéo Immich avec l’option de transcodage temps réel

Le serveur doit être suffisamment puissant pour transcoder en temps réel. L’accélération matérielle est recommandée mais pas obligatoire.

OCR sur mobile
#

Les applications mobiles intègrent désormais la reconnaissance de texte dans les images. Un bouton dans le visualiseur d’assets affiche les zones de texte détectées. L’utilisateur peut sélectionner et copier le texte directement depuis l’image.

Capture officielle de l’OCR dans l’application mobile Immich

Vérifications d’intégrité
#

La page de maintenance propose un nouveau rapport d’intégrité. Immich scanne les répertoires de stockage et compare les fichiers présents sur le disque avec les entrées en base de données. Trois types d’anomalies sont détectés :

Capture officielle du rapport d’intégrité Immich avec fichiers non suivis, fichiers manquants et différences de checksum

  • fichiers non suivis : présents sur le disque mais inconnus d’Immich
  • fichiers manquants : référencés en base mais absents du disque
  • non-concordance de checksum : le fichier a été modifié ou corrompu

La planification et la durée d’exécution de la tâche sont configurables.

Le point important est de ne pas traiter tous les résultats de la même manière. Un fichier non suivi peut être un reste d’import ou une copie manuelle. Un fichier manquant ou un checksum différent mérite en général une vérification plus attentive, surtout si le stockage est monté depuis un NAS, un volume Docker ou un disque externe.

Page “Récemment ajoutés”
#

Une nouvelle page “Recently Added” est disponible sur le web et le mobile. Elle trie les assets par date d’importation dans Immich, et non par date de prise de vue. Utile pour retrouver ce qui vient d’être ajouté après une importation groupée.

Capture officielle de la page Recently Added dans Immich

Améliorations des sauvegardes
#

Sur Android, les sauvegardes en arrière-plan sont nettement plus fiables. L’application utilise un nouveau planificateur de tâches périodiques. Elle peut désormais télécharger l’intégralité de la bibliothèque en arrière-plan, et alerte l’utilisateur si les paramètres d’optimisation de la batterie ou des notifications risquent d’interférer avec les sauvegardes.

Sur iOS, la tâche de fond exécute désormais la synchronisation et les téléchargements en parallèle, ce qui permet de démarrer les téléchargements dans la fenêtre temporelle limitée accordée par le système.

Autres améliorations
#

  • Nouveau lecteur vidéo sur le web, avec des contrôles personnalisés cohérents sur tous les appareils
  • Diaporama sur mobile
  • Ouverture des photos dans Immich depuis Android : Immich peut être utilisé comme visionneuse/galerie par défaut
  • Téléversement direct dans un album depuis l’application mobile
  • Sélection de la taille de l’image lors du partage depuis l’application mobile
  • Amélioration des performances de la timeline pour les mois comportant un grand nombre d’assets, avec un défilement fluide qui évite le blocage du navigateur
  • Intégrité des rapports et configuration dans les paramètres d’administration

Release candidates
#

La v3.0.0 inaugure l’utilisation de release candidates. Pour les activer, rendez-vous dans Administration > Vérification de version et sélectionnez “Release candidate” comme canal. Les pré-versions permettent de tester les évolutions avant la publication finale.

Points de vigilance API
#

La plupart des changements à vérifier concernent l’API et les outils tiers qui s’y intègrent. Les utilisateurs qui utilisent exclusivement l’interface web et les applications mobiles ne devraient pas constater de régression.

Points à vérifier
#

  • pgvecto.rs supprimé : l’option DB_VECTOR_EXTENSION=pgvecto.rs déclenche une erreur. Migrer vers VectorChord (successeur de pgvecto.rs).
  • Variables d’environnement supprimées : IMMICH_MACHINE_LEARNING_PING_TIMEOUT, MACHINE_LEARNING_PRELOAD__CLIP, MACHINE_LEARNING_PRELOAD__FACIAL_RECOGNITION sont remplacées par des équivalents plus précis.
  • OAuth : les requêtes HTTP non sécurisées ne sont plus autorisées par défaut. L’URL du issuer doit être une URL valide.
  • API Assets : les propriétés deviceId et deviceAssetId sont supprimées. La durée (duration) est désormais un nombre (millisecondes).
  • API Albums : les propriétés owner et ownerId sont déplacées dans albumUsers. La propriété assets est supprimée.
  • Validation : migration de class-validator vers Zod. Le format des erreurs de validation change.
  • Métriques : les underscores dans les noms de métriques sont remplacés par des points.
  • Endpoint /server/theme : supprimé, utiliser /custom.css.

Migration
#

La procédure de mise à jour est simple pour la plupart des installations :

# 1. Modifier la version dans .env
# IMMICH_VERSION=v2  ->  IMMICH_VERSION=v3

# 2. Mettre à jour les conteneurs
docker compose pull && docker compose up -d

Avant de relancer, deux vérifications évitent les mauvaises surprises sur les installations un peu personnalisées :

rg 'IMMICH_VERSION|DB_VECTOR_EXTENSION' .env docker-compose.yml

Si DB_VECTOR_EXTENSION=pgvecto.rs apparaît encore, il faut traiter la migration VectorChord avant de considérer la mise à jour comme triviale.

Si vous utilisez des outils tiers qui interagissent avec l’API Immich, consultez le guide de migration officiel avant de mettre à jour.

Les utilisateurs de pgvecto.rs doivent suivre la documentation de migration vers VectorChord.

Conclusion
#

Immich 3.0 est une mise à jour intéressante, mais pas une version à installer sans lire les notes si vous avez des intégrations autour de l’API. Les fonctionnalités majeures (édition mobile, workflows, HLS) sont livrées en aperçu, ce qui reste cohérent avec un projet qui privilégie la stabilité. La plupart des utilisateurs peuvent migrer sans difficulté particulière.

Les intégrateurs et développeurs d’outils tiers doivent par contre planifier la mise à jour de leurs adaptateurs : les changements API sont nombreux et certains endpoints disparaissent complètement.

Le projet continue d’avancer vite, avec plus de 300 releases à ce jour et une communauté active. La v3.0.0 a aussi été la première version à utiliser des release candidates (pré-versions), une pratique qui devrait aider à stabiliser les futures versions majeures.

Si vous utilisez déjà Immich, la migration mérite surtout une vérification des intégrations API, du stockage vectoriel et de la configuration Docker. Pour une nouvelle installation, la branche 3.x est un bon point de départ.

Sources
#

Articles connexes

30 projets open source récemment étoilés sur GitHub

L’open source est redevenu bruyant. Très bruyant. Entre les agents IA, les scanners de vulnérabilités, les outils anti-crawlers, les dashboards de monitoring et les apps self-hosted, on peut remplir un serveur en une soirée et le regretter pendant six mois. Le vrai travail n’est plus de trouver des projets. Le vrai travail, c’est de trier. Je mets beaucoup trop d’étoiles sur GitHub. Pas parce que je compte tout installer. Ce serait le meilleur moyen de transformer un homelab en brocante numérique impossible à maintenir. Mais parce qu’une étoile GitHub, bien utilisée, est un marque-page technique. Elle dit : “ce projet répond peut-être à un problème que j’ai déjà rencontré, ou à un problème que je vais rencontrer bientôt” Dans un homelab, le plus dur n’est pas d’installer un projet open source. C’est de savoir s’il mérite encore d’être là dans six mois. C’est exactement pour ça que je garde une veille GitHub : pas pour tout déployer, mais pour repérer les signaux faibles. Cette sélection part donc de mes 30 stars GitHub publiques les plus récentes, récupérées depuis mon profil GitHub foudreclair et plus précisément depuis mes stars publiques. Je ne les présente pas comme un classement, ni comme une recommandation de production. Et surtout, je ne les ai pas tous testés. C’est une photographie de veille : ce qui a attiré mon attention à un moment donné, et ce que ces projets racontent de mes sujets actuels. On y retrouve des thèmes nets : IA, sécurité, infra légère, self-hosting, dev tools, Fediverse, publication web et données personnelles. Ce qui m’intéresse, ce n’est pas la hype. C’est ce que ces projets disent des problèmes que les admins, devs et self-hosters essaient vraiment de résoudre aujourd’hui. Cet article s’adresse surtout aux personnes qui maintiennent un homelab, un petit VPS, un site statique, ou une veille technique personnelle. Anubis m’intéresse particulièrement dans ce contexte, parce qu’il répond à un problème récent et très concret : les petits sites qui subissent le trafic de crawlers automatisés. Je ne l’ai pas encore testé ; je veux justement le faire proprement avec Pangolin, puis en tirer un article dédié sur le duo Pangolin + Anubis. Cette liste est datée : 21 avril 2026. Elle correspond aux 30 dépôts publics les plus récemment étoilés sur mon profil GitHub au moment de la rédaction. Si je change mes stars, l’ordre public sur GitHub peut évoluer, et c’est normal. L’objectif n’est pas de figer un classement, mais de documenter une veille à un instant donné.

Pangolin : exposer CrowdSec Manager derrière le SSO

··2643 mots·13 mins
Dans le premier article sur Pangolin, j’avais volontairement laissé CrowdSec de côté. Pas parce que CrowdSec n’est pas utile. Au contraire. Mais parce qu’une pile Pangolin doit d’abord être comprise avant d’ajouter des briques de sécurité, des bouncers, des dashboards et des automatisations. Une fois Pangolin stable, la question revient naturellement : Comment visualiser proprement ce que CrowdSec voit et bloque, sans exposer une interface d’administration sensible sur Internet ? C’est là que CrowdSec Manager devient intéressant. L’objectif de ce test est simple : installer CrowdSec Manager à côté de la stack CrowdSec ; ne pas publier son port 8080 sur Internet ; le rendre accessible uniquement via Pangolin ; protéger l’accès avec le SSO Pangolin ; garder les secrets Newt dans Gitea Actions, pas dans Git.

Pourquoi Cryptolab existe

·357 mots·2 mins
J’ai monté Cryptolab pour une raison simple : j’en avais marre de bidouiller dans le vide. Comme beaucoup de gens qui aiment l’infrastructure, le réseau ou le self-hosting, j’ai accumulé les tests, les VPS inutiles, les configs overkill, les idées lancées un soir et abandonnées deux semaines plus tard. Tout ça existe quelque part dans des notes, des commits oubliés, des terminaux fermés trop vite.