Thumbor se puede utilizar de forma gratuita para cambiar el tamaño de las imágenes, comprimirlas y transformarlas a pedido.
Las CDN de imágenes facilitan la optimización dinámica de la estética y el rendimiento de tus imágenes. A diferencia de la mayoría de las CDN de imágenes, Thumbor es de código abierto y se puede usar libremente para cambiar el tamaño, comprimir y transformar imágenes. Es adecuada para producción. Tanto Wikipedia como Square usan Thumbor.
En esta guía, se explica cómo instalar Thumbor en tu propio servidor. Una vez instalada, podrás usar Thumbor como una API para transformar tus imágenes.
Introducción
Instalarás Thumbor en una VM que ejecuta Ubuntu 16.04. Ubuntu 16.04 es una imagen muy común, y estas instrucciones están diseñadas para que funcionen en cualquier proveedor de servicios en la nube. Crear una VM puede parecer más trabajo que instalar Thumbor en tu máquina local, pero los minutos que te tomes crear una VM probablemente te ahorrarán horas o días de frustración al tratar de que Thumbor se instale correctamente en tu máquina local. Aunque es fácil de usar, Thumbor es notablemente difícil de instalar, pero estas instrucciones simplifican el proceso. Si las dependencias se descargan con rapidez, la instalación se puede completar en 5 a 10 minutos.
Requisitos previos
En esta publicación, se supone que sabes crear una VM de Ubuntu 16.04 LTS en una plataforma en la nube como Google Cloud,AWS, o Azure y cómo usar herramientas de línea de comandos para configurar la VM.
Instala las dependencias de Thumbor
Actualiza y actualiza los paquetes ya instalados de Ubuntu:
sudo apt-get update -y && sudo apt-get upgrade -y
Instala pip
, el administrador de paquetes de Python. Más adelante, instalarás Thumbor con pip
.
sudo apt-get install -y python-pip
Instala las dependencias de Thumbor. En la documentación de Thumbor, no se mencionan de forma explícita estas dependencias, pero Thumbor no se instalará correctamente sin ellas.
# 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
Instalar Thumbor
Instala Thumbor con pip.
sudo pip install thumbor
Si instalaste Thumbor correctamente, esto debería funcionar:
thumbor --help
Ejecutar Thumbor
Ejecuta Thumbor. El registro de depuración es opcional, pero puede ser útil cuando estás comenzando.
thumbor --log-level debug
Thumbor ahora se está ejecutando.
Puerto de firewall abierto
De manera predeterminada, Thumbor se ejecuta en el puerto 8888. Si la dirección IP de tu VM es 12.123.12.122
, accederías a Thumbor desde el navegador web en http://12.123.12.123:8888/.../$IMAGE
.
Sin embargo, esto probablemente no funcione para ti (aún) porque los proveedores de servicios en la nube suelen requerir que abras de forma explícita puertos de firewall antes de que acepten tráfico entrante.
Actualiza el firewall para exponer el puerto 8888. Aquí encontrarás más información sobre cómo hacerlo en Google Cloud, AWS y Azure. Ten en cuenta que, para Google Cloud, primero debes asignar una dirección IP estática a tu VM y, luego, permitir una conexión HTTP externa.
Pruébala
Thumbor ahora es accesible y listo para usar. Visita la siguiente URL para probarlo:
http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg
Ten en cuenta que esta URL usa HTTP. Thumbor usa HTTP de manera predeterminada, pero se puede configurar para que use HTTPS.
Deberías ver una imagen de 100 píxeles de ancho por 100 píxeles de alto. Thumbor tomó la imagen hero.jpg
y el tamaño especificados en la string de URL y publicó el resultado. Puedes reemplazar la imagen en la string de la URL (es decir, https://web.dev/install-thumbor/hero.jpg
) por cualquier otra imagen (p.ej., https://your-site.com/cat.jpg
) y Thumbor también cambiará el tamaño de esa imagen.
Para obtener más información sobre el uso de la API de Thumbor, el artículo Optimiza imágenes con Thumbor. En particular, tal vez te interese configurar un archivo de configuración de Thumbor.
Apéndice: Cómo configurar Systemd
En este paso, se explica cómo asegurarse de que el proceso de Thumbor siga ejecutándose, incluso después de reiniciar la VM. Este paso es importante para los sitios de producción, pero es opcional si solo estás jugando con Thumbor.
Systemd es el "administrador de sistemas y servicios" para los sistemas operativos Linux. systemd
facilita la configuración cuándo se ejecutan los servicios (procesos).
Configurarás systemd
para que inicie automáticamente Thumbor cuando se inicie la VM. Si se reinicia la VM, también se reiniciará automáticamente el proceso de Thumbor. Esto es mucho más confiable que depender de la intervención del usuario para iniciar Thumbor.
Navega al directorio /lib/systemd/system
. Este directorio contiene los archivos de servicio para systemd
.
cd /lib/systemd/system
Como superusuario, crea un archivo thumbor.service
.
sudo touch thumbor.service
Con tu editor de texto favorito (vim y nano vienen preinstalados en Ubuntu o puedes instalar otro editor), agrega la siguiente configuración a thumbor.service
. Esta configuración ejecutará /usr/local/bin/thumbor
(es decir, el objeto binario de Thumbor) una vez que las redes estén disponibles y reiniciará Thumbor en caso de falla.
[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
es la utilidad que se usa para administrar systemd
. Usa el comando start
para iniciar Thumbor.
sudo systemctl start thumbor.service
A continuación, "habilitar" Thumbor. Esto significa que Thumbor se iniciará automáticamente durante el inicio.
sudo systemctl enable thumbor.service
Verifica si configuraste systemd
de forma correcta mediante la ejecución del comando status
.
systemctl status thumbor.service
Si configuraste thumbor.service correctamente para usar systemd
, el estado debería indicar que está habilitado y activo.