Cómo instalar la CDN de imágenes de Thumbor

Thumbor se puede usar sin costo para cambiar el tamaño, comprimir y transformar imágenes a pedido.

Katie Hempenius
Katie Hempenius

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 de forma gratuita para cambiar el tamaño, comprimir y transformar imágenes. Es adecuado para uso en producción. Wikipedia y Square usan Thumbor.

En esta guía, se explica cómo instalar Thumbor en tu propio servidor. Una vez instalado, podrás usar Thumbor como 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 pensadas para funcionar 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 es probable que los minutos que tardes en crear una VM te ahorren horas o días de frustración al intentar que Thumbor se instale correctamente en tu máquina local. Aunque es fácil de usar, Thumbor es muy difícil de instalar, pero estas instrucciones simplifican el proceso. Si las dependencias se descargan rápidamente, la instalación se puede completar en 5 a 10 minutos.

Requisitos previos

En esta publicación, se da por sentado que sabes cómo crear una VM de Ubuntu 16.04 LTS en una plataforma de nube como Google Cloud,AWS o Azure y que sabes usar las herramientas de línea de comandos para configurar la VM.

Instala las dependencias de Thumbor

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. La documentación de Thumbor no menciona de manera 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, debería funcionar:

thumbor --help

Miniatura de ejecución

Ejecuta Thumbor. El registro de depuración es opcional, pero puede ser útil cuando comiences.

thumbor --log-level debug

Se está ejecutando Thumbor.

Puerto de firewall abierto

De forma predeterminada, Thumbor se ejecuta en el puerto 8888. Si la dirección IP de tu VM es 12.123.12.122, accederás a Thumbor desde el navegador web en http://12.123.12.123:8888/.../$IMAGE.

Sin embargo, esto probablemente no te sirva (todavía) porque los proveedores de servicios en la nube generalmente requieren que abras puertos de firewall de forma explícita antes de que acepten el tráfico entrante.

Actualiza el firewall para exponer el puerto 8888. Aquí tienes 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

Ahora puedes acceder a Thumbor, y usarlo. Para probarla, visita la siguiente URL:

http://YOUR_VIRTUAL_MACHINE:8888/unsafe/100x100/https://web.dev/install-thumbor/hero.jpg

Ten en cuenta que esta URL usa HTTP. Thumbor utiliza HTTP de forma predeterminada, pero se puede configurar para que utilice 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 especificado en la cadena de URL, y mostró el resultado. Puedes reemplazar la imagen en la cadena de URL (p.ej., https://web.dev/install-thumbor/hero.jpg) con cualquier otra imagen (p.ej., https://your-site.com/cat.jpg) y Thumbor también ajustará el tamaño de esa imagen.

El artículo Cómo optimizar imágenes con Thumbor tiene más información sobre cómo usar la API de Thumbor. En particular, puede interesarte configurar un archivo de configuración de Thumbor.

Apéndice: Configuración de Systemd

En este paso, se explica cómo asegurarse de que el proceso de Thumbor se siga ejecutando, incluso después de reiniciar la VM. Este paso es importante para los sitios de producción, pero es opcional si solo quieres probar con Thumbor.

Systemd es el “administrador de sistemas y servicios”. para los sistemas operativos Linux. systemd facilita la configuración del momento en que se ejecutan los servicios (procesos).

Configurarás systemd para iniciar Thumbor automáticamente durante el inicio de la VM. Si se reinicia la VM, el proceso de Thumbor también se reiniciará automáticamente. Esto es mucho más confiable que recurrir a 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

Usa 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 la red esté disponible y reiniciará Thumbor si se produce un error.

[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, selecciona "Habilitar". Pulgar. Esto significa que Thumbor se iniciará automáticamente durante el inicio.

sudo systemctl enable thumbor.service

Verifica que hayas configurado systemd correctamente mediante la ejecución del comando status.

systemctl status thumbor.service

Si configuraste thumbor.service correctamente para usar systemd, el estado debería mostrar que está habilitado y activo.

Systemctl muestra el estado de Thumbor