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

Thumbor se puede utilizar de forma gratuita para cambiar el tamaño de las imágenes, comprimirlas y transformarlas 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 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.

Systemctl muestra el estado de Thumbor