Blog / Article #165
IPX vs Imagor : Choisir son serveur d'images self-hébergé sans se prendre la tête

star

05 Novembre 2026
Illustration minimaliste de deux serveurs abstraits ou icônes cloud, IPX et Imagor, reliés par des flèches colorées (bleu, vert, violet) symbolisant un flux de données et traitement d'images optimisé pour la rapidité et l'efficacité dans un environnement technique moderne.

Combien de fois on s'est retrouvé à galérer avec les images sur un projet PHP ? Soit on les stocke bêtement et on les redimensionne à la volée avec du code maison qui consomme des ressources, soit on se tourne vers un CDN ultra-cher pour un petit projet perso. Dans mon homelab, je cherche toujours à maîtriser mes outils et mes coûts. C'est là que les serveurs d'images self-hébergés entrent en jeu, et récemment, je me suis penché sur deux candidats sérieux : Ipx et Imagor.

Ces outils permettent de servir des images optimisées, redimensionnées et converties à la volée, sans que votre application n'ait à s'en soucier. Fini les scripts PHP qui transforment un JPEG de 5 Mo en vignette ! On va voir comment les installer, les comparer et surtout, comment les intégrer facilement dans vos projets PHP.

Ipx : L'optimiseur JavaScript pour les rapides

Ipx, c'est le petit nouveau (enfin, pas si nouveau, mais par la Team UnJS) qui mise sur la simplicité et la performance grâce à sharp et svgo. C'est un outil JavaScript/TypeScript, donc attendez-vous à du npm ou npx pour le lancer. Son approche est de rendre les images disponibles dans n'importe quelle taille, format et qualité, simplement via une URL.

Installation et premières impressions d'Ipx

Pour le lancer rapidement, pas de Docker image toute faite comme on aimerait parfois, mais un simple npx suffit si vous avez Node.js d'installé sur votre machine ou dans un conteneur dédié. C'est plus une solution CLI ou une bibliothèque à intégrer.

npx ipx serve --dir ./path/to/your/images

Cette commande va démarrer un serveur IPX qui servira les images depuis le répertoire ./path/to/your/images. C'est hyper simple pour commencer.

Ensuite, pour manipuler vos images, tout se passe via l'URL. Par exemple :

  • Pour une image originale : http://localhost:3000/_/static/buffalo.png
  • Pour la redimensionner à 200px de large : http://localhost:3000/w_200/static/buffalo.png
  • Pour la convertir en WebP : http://localhost:3000/f_webp/static/buffalo.png
  • Pour une combinaison : http://localhost:3000/s_200x200,fit_contain,f_webp/static/buffalo.png

C'est très intuitif, les modificateurs sont clairs et permettent de faire pas mal de choses à la volée. Un bon point pour la flexibilité !

Imagor : Le moteur Go robuste et compatible Thumbor

Imagor, lui, c'est le vétéran robuste en Go, propulsé par libvips. Il est réputé pour sa vitesse (souvent 4 à 8 fois plus rapide que ImageMagick) et sa compatibilité avec la syntaxe Thumbor, ce qui est un gros plus si vous avez déjà l'habitude de ce genre d'outil ou si vous cherchez une solution éprouvée.

Installation et premières impressions d'Imagor

Là, on est en terrain connu pour les homelabbers : Docker ! L'image officielle est très simple à lancer. En quelques secondes, votre serveur Imagor est prêt.

docker run -p 8000:8000 shumc/imagor -imagor-unsafe -imagor-auto-webp

Cette commande lance Imagor sur le port 8000, active le mode non sécurisé (-imagor-unsafe, utile pour le dev mais à éviter en prod !) et la conversion automatique en WebP (-imagor-auto-webp).

Pour la production, il est crucial d'utiliser une clé secrète pour signer vos URLs avec IMAGOR_SECRET=mysecret afin d'éviter les abus. Sans signature, n'importe qui pourrait demander des transformations coûteuses à votre serveur. Un piège à retenir !

Les URLs de transformation sont très similaires à Thumbor :

  • Redimensionner et remplir un fond blanc : http://localhost:8000/unsafe/fit-in/200x200/filters:fill(white)/https://raw.githubusercontent.com/cshum/imagor/master/testdata/gopher.png
  • Avec une URL signée (en prod) : http://localhost:8000/<hash>/300x200/https://example.com/photo.jpg

La documentation officielle est très complète et explique bien toutes les options de configuration possibles via des variables d'environnement (PORT, DEBUG, SERVER_CORS, etc.).

Comparatif fonctionnel : Qui fait quoi le mieux ?

Les deux outils sont excellents pour les tâches de base : redimensionnement, recadrage, application de filtres. Mais quelques différences sont notables :

  • Formats modernes (WebP, AVIF) : Les deux gèrent très bien la conversion vers ces formats pour optimiser la bande passante. Imagor a une option -imagor-auto-webp très pratique.
  • Cache : Ipx et Imagor sont tous deux stateless (sans état), ce qui les rend idéaux pour être placés derrière un CDN ou un système de cache (comme Varnish ou Nginx) pour des performances optimales.
  • Performance pure : Là où Imagor tire son épingle du jeu, c'est souvent sur la performance pure, grâce à son utilisation de libvips en Go. C'est un monstre de rapidité pour le traitement d'images, capable de gérer de très gros fichiers et un trafic important avec une efficacité remarquable. Ipx, basé sur sharp (qui utilise aussi libvips en coulisses), est également très performant, mais Imagor est souvent cité comme ayant un léger avantage sur les benchmarks intensifs.
  • Sécurité : Imagor intègre nativement un mécanisme de signature HMAC pour les URLs. C'est une fonctionnalité de sécurité essentielle pour la production, garantissant que seules vos applications autorisées peuvent demander des transformations. Ipx se repose plus sur la restriction des répertoires ou domaines autorisés.

Performance et ressources : Mon avis de homelabber

Dans mon homelab, j'ai fait quelques tests rapides. Difficile de donner des chiffres exacts sans un setup de benchmark dédié, mais la sensation est là : Imagor, avec libvips, est un peu plus nerveux sur les gros volumes ou les traitements complexes. Pour des images de quelques centaines de Ko ou quelques Mo, la différence est minime. Mais si vous traitez des dizaines de milliers d'images ou des fichiers RAW, Imagor semble avoir une meilleure empreinte CPU et mémoire.

Ipx reste très performant pour la majorité des cas, surtout pour des usages web classiques. Si vos ressources sont limitées, les deux sont des choix bien plus efficaces que des solutions PHP à base de GD ou ImageMagick.

Intégration avec des projets PHP

C'est la question qui tue pour un développeur PHP !

Intégration d'Imagor en PHP

Pour Imagor, c'est assez simple, et surtout, sécurisé. Il existe des

Publié le 05/11/2026 · 5 min de lecture Partager X LinkedIn

← Précédent Llm en local : revolut nous montre comment économiser un bras (et reprendre le contrôle) Suivant → Flock : l'alternative open-source à laravel herd qui va te faire revoir tes classiques