Thumbor peut être utilisé sans frais pour redimensionner, compresser et transformer des images à la demande.
Les CDN pour les images permettent d'optimiser facilement et de manière dynamique l'esthétique et les performances de vos images. Contrairement à la plupart des CDN d'images, Thumbor est Open Source et peut être utilisé sans frais pour redimensionner, compresser et transformer des images. Elle est adaptée à une utilisation en production. Les pages Wikipédia et Square utilisent toutes deux Thumbor.
Ce guide explique comment installer Thumbor sur votre propre serveur. Une fois l'application installée, vous pourrez utiliser Thumbor comme API pour transformer vos images.
présentation
Vous allez installer Thumbor sur une VM exécutant Ubuntu 16.04. Ubuntu 16.04 est une image très courante et ces instructions sont destinées à fonctionner avec n'importe quel fournisseur de services cloud. La création d'une VM peut sembler plus fastidieuse que l'installation de Thumbor sur votre machine locale, mais les minutes que vous prenez pour créer une VM vous feront probablement gagner des heures, voire des jours de frustration à essayer de faire installer correctement Thumbor sur votre machine locale. Bien qu'il soit facile à utiliser, Thumbor est connu pour être difficile à installer, mais ces instructions simplifient le processus. Si le téléchargement des dépendances est rapide, l'installation peut prendre 5 à 10 minutes.
Prérequis
Dans cet article, nous partons du principe que vous savez créer une VM Ubuntu 16.04 LTS sur une plate-forme cloud telle que Google Cloud, AWS, ou Azure, et comment configurer la VM à l'aide d'outils de ligne de commande.
Installer les dépendances Thumbor
Mettez à jour et mettez à jour les packages déjà installés sur Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
Installez pip
, le gestionnaire de packages pour Python. Vous installerez Thumbor avec pip
plus tard.
sudo apt-get install -y python-pip
Installez les dépendances de Thumbor. La documentation de Thumbor ne mentionne pas explicitement ces dépendances, mais Thumbor ne pourra pas s'installer sans ces dépendances.
# ssl packages
sudo apt-get install -y libcurl4-openssl-dev libssl-dev
# computer vision packages
sudo apt-get install -y python-opencv libopencv-dev
# image format packages
sudo apt-get install -y libjpeg-dev libpng-dev libwebp-dev webp
Installer Thumbor
Installez Thumbor à l'aide de pip.
sudo pip install thumbor
Si vous avez réussi à installer Thumbor, cela devrait fonctionner:
thumbor --help
Lancer le pouce
Lancer Thumb. La journalisation des données de débogage est facultative, mais elle peut être utile pour vous lancer.
thumbor --log-level debug
Thumbor est désormais activé.
Port de pare-feu ouvert
Par défaut, Thumbor s'exécute sur le port 8888. Si l'adresse IP de votre VM est 12.123.12.122
, vous pouvez accéder à Thumbor depuis le navigateur Web à l'adresse http://12.123.12.123:8888/.../$IMAGE
.
Toutefois, cela ne fonctionnera probablement pas (encore) pour vous, car les fournisseurs de services cloud exigent généralement d'ouvrir explicitement les ports de pare-feu avant d'accepter le trafic entrant.
Mettez à jour le pare-feu pour exposer le port 8888. Voici comment procéder pour Google Cloud, AWS et Azure. Notez que pour Google Cloud, vous devez d'abord attribuer une adresse IP statique à votre VM, puis autoriser une connexion HTTP externe.
Faire le test
Thumbor est désormais accessible et prêt à être utilisé. Essayez-la en accédant à l'URL suivante:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Notez que cette URL utilise le protocole HTTP. Thumbor utilise le protocole HTTP par défaut, mais il peut être configuré pour utiliser HTTPS.
Vous devriez voir une image de 100 pixels de large sur 100 pixels de haut. Thumbor a pris l'image hero.jpg
et la taille spécifiée dans la chaîne d'URL et a diffusé le résultat. Vous pouvez remplacer l'image dans la chaîne de l'URL (par exemple, https://web.dev/install-thumbor/hero.jpg
) par une autre image (par exemple, https://your-site.com/cat.jpg
) et Thumbor la redimensionneront également.
Pour en savoir plus sur l'utilisation de l'API Thumbor, consultez l'article Optimiser les images avec Thumbor. En particulier, vous pouvez être intéressé par la configuration d'un fichier de configuration Thumbor.
Annexe: Configurer systemd
Cette étape explique comment s'assurer que le processus Thumbor continue de s'exécuter, même après le redémarrage de la VM. Cette étape est importante pour les sites de production, mais facultative si vous ne faites que tester Thumbor.
Systemd est le "gestionnaire de systèmes et de services" des systèmes d'exploitation Linux. systemd
facilite la configuration du moment où les services (processus) s'exécutent.
Vous allez configurer systemd
pour lancer automatiquement Thumbor au démarrage de la VM. Si la VM est redémarrée, le processus Thumbor redémarre automatiquement. Cette méthode est beaucoup plus fiable que de compter sur l'intervention de l'utilisateur pour lancer Thumbor.
Accédez au répertoire /lib/systemd/system
. Ce répertoire contient les fichiers de service pour systemd
.
cd /lib/systemd/system
En tant que super-utilisateur, créez un fichier thumbor.service
.
sudo touch thumbor.service
À l'aide de l'éditeur de texte de votre choix (vim et nano sont préinstallés sur Ubuntu, ou vous pouvez installer un autre éditeur), ajoutez la configuration suivante à thumbor.service
. Cette configuration exécutera /usr/local/bin/thumbor
(c'est-à-dire le binaire Thumbor) une fois la mise en réseau disponible et redémarrera Thumbor en cas d'échec.
[Unit]
Description=Service for Thumbor image CDN
Documentation=https://thumbor.readthedocs.io/en/latest/
After=network.target
[Service]
ExecStart=/usr/local/bin/thumbor
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl
est l'utilitaire qui permet de gérer systemd
. Utilisez la commande start
pour lancer Thumbor.
sudo systemctl start thumbor.service
Ensuite, « activer » Thumbor. Cela signifie que Thumbor démarrera automatiquement au démarrage.
sudo systemctl enable thumbor.service
Vérifiez que vous avez correctement configuré systemd
en exécutant la commande status
.
systemctl status thumbor.service
Si vous avez réussi à configurer Thumbor.service pour utiliser systemd
, l'état doit indiquer qu'il est activé et actif.