Cuando buscamos alguna información en los buscadores de Internet, vemos un listado de resultados de páginas con el contenido que queremos acceder. Generalmente hacemos clic en el primer enlace del listado porque de todos los resultados, sabemos que tiene mas probabilidad de brindarnos la información solicitada. Entonces el SEO es el proceso que realiza el creador del sitios web o una agencia como Eskimoz, para que un sitio aparezca en los primeros resultados de un buscador al buscar ciertos términos.

La palabra SEO son las siglas de Search Engine Optimization, que al traducir sería Optimización para Motores de Búsqueda. Entonces aplicar SEO significa realizar acciones para optimizar el contenido de nuestro sitio para ser relevante ante los términos o palabras que los visitantes o compradores puedan usar para llegar a nuestro sitio web. Por ejemplo, si queremos vender trajes de novia. Debemos crear contenido relacionado a bodas, en cada página de traje de novia asegurarnos de escribir correctamente el nombre del estilo del traje, colores, características, usar el nombre mas común en los títulos, definir descripciones breves en las imágenes del producto, utilizar sinónimos a lo largo del texto, entre otros.

De esta forma, cuando un motor de búsqueda indexe el contenido de nuestra página, analice la estructura del contenido de la misma y la relacione a los diferentes términos. De esta forma aumentaremos la posibilidad de aparecer en las primeras posiciones.

El SEO son técnicas para optimizar nuestro sitio web para que los visitantes lleguen fácilmente cuando hacen búsquedas

¿Cuáles son las tendencias SEO para 2024?

El contenido en formato de texto no va a desaparecer, sin embargo en el 2024 veremos otros medios como imágenes, vídeos y páginas que muestren su información en formato de lenguaje natural como una conversación, serán cada vez mas populares. Por esta razón debemos enfocarnos en aplicar SEO en estos medios: describir el contenido de cada imagen que pongamos en nuestro sitio; realizar vídeos con transcripciones de su contenido y describir que se visualiza en el vídeo. Y cuando sea posible, explicar el contenido escrito como lenguaje natural para que parezca como si habláramos con un ser humano.

¿Por qué invertir en SEO?

Hoy en día no es suficiente con crear una página web y aparecer mágicamente en los primeros resultados de los buscadores. Es necesario aplicar SEO a tus sitios para obtener mejores posiciones y así incrementar las visitas a nuestro portal. Lo cual se traducirá en mas ventas o llegar a un mayor sector de mercado.

Mi principal recomendación para invertir en SEO es recordar que si no inviertes en SEO, tu competencia si lo hace y te está robando visitantes de tu sitio web. Evitando que puedas aumentar tus ventas. Además, a pesar que puedes seguir guías en Internet y aplicar SEO por ti mismo. Es recomendable contratar una agencia o profesionales en el área, que permitan brindarte un plan de acción específico a tus necesidades y tener resultados personalizados que se diferencien de la competencia.

Espero que con este artículo tengas una mejor idea de qué es SEO, te animes a invertir en esto para aumentar el posicionamiento de tu sitio web y llegar a mas personas.

La entrada ¿Qué es el SEO y cómo funciona? se publicó primero en El blog de Skatox.

Desde el año 2000 practico skate y es mi hobbie favorito. Entonces como hoy cumplo 36 años, para celebrarlo, decidí filmar un video skate aprovechando que he estado bajando de peso y he estado agarrando mejor condición física para patinar.

¿Por qué 36 trucos en el video skate?

En el mundo del skateboarding, muchas personas luego de los 30 años suelen sacar un vídeo haciendo como cantidad de trucos, la cantidad de años que están cumpliendo. Por esta razón el video skate contiene 36 trucos porque estoy cumpliendo 36 años en el día de hoy.

Me costó un poco perder el miedo a volver a hacer trucos luego de una lesión que tuve el año pasado, pero gracias a la presión de filmar los 36 trucos pude volverlos a aterrizar y hacerlos.

Así que sin mas preámbulos les comparto mi video de 36 trucos:

YouTube Video

Fue un reto grabar 36 trucos distintos, pero estoy feliz de haberlo logrado. Y finalmente, quiero decirte que si viste mi video completo, te doy las gracias por hacerlo, significa mucho para mi.

La entrada Mi video Skate: 36 trucos para mi cumpleaños 36 se publicó primero en El blog de Skatox.

El pasado 9 de noviembre del 2019 se realizó el Boyaconf, una conferencia de tecnología realizada en la ciudad de Duitama, Colombia. Fue una de las mejores conferencias que he participado y tiene un especial recuerdo para mí por ser la última conferencia siendo parte de Mozilla Techspeakers y antes de la pandemia global que tuvimos. Ademas que me enteré que iba a ser ponente muchos meses antes y pues esperaba con ansias que se hiciera.

Breve resumen del Boyaconf 2019

El evento constaba de un solo día con una variedad de charlas tanto nivel básico como avanzado. Ademas, los temas eran diversos así que había contenido para aprender sin importar que rama de la informática te gusta.

La calidad de los ponentes era chévere, con presencia de varios países de latinoamérica. El evento estuvo animado por Karolina Landino quien hizo un excelente trabajo presentando a los ponentes y animando a la audiencia entre charlas. Posteriormente, Jahir Fiquitiva nos dio una introducción/bienvenida al evento y los detalles como organizador.

Las charlas estuvieron excelente, se habló sobre Android, Javacript, complejidad computacional, Inteligencia Artificial, escalar sistemas para alta demanda, realidad virtual (excelente ponencia de Fabio Cortés), micro-servicios y mas. El hecho de tener contenido variado logró captar la atención de toda la audiencia y ser entretenida a lo largo del día.

Luego del evento procedimos a tomarnos fotos, recibir swag de los patrocinadores y compartir un rato entre ponentes y asistentes. Tuve la oportunidad de ver a varios de mis ex-alumnos de la universidad, pero ya egresados como colegas de la ingeniería.

¡Finalmente el evento cerró con un after-party excelente! Pero los detalles quedan ajenos al artículo 😄. Para mi fue excelente porque venía de estar casi un mes viajando por todo el mundo dando charlas y podía cerrar con broche de oro.

Mi charla sobre WebAssembly

Mi charla fue una introducción a WebAssembly con nueva incorporaciones de demostraciones y contenido para la fecha del evento. La charla era una de la versión en español de la dictada en BrazilJS 2019 y por esta misma razón quedo muy corta. Me di cuenta que cuando la dí en inglés tuvo una duración de 25 minutos, mientras que en el Boyaconf fue de 20 minutos porque mi español es rápido y tenía mas dominio del tema.

Recuerdo que hubo excelentes preguntas y el público estaba interesado. Había una cantidad notable de gente de mi ciudad natal (San Cristóbal, Venezuela), por lo que al nombrar de donde era ellos hicieron bulla para darse a conocer (no me ha pasado en ningún otro evento).

Luego de mi charla pude interactuar con mucho público. De todos los eventos que he participado en Colombia, los del Boyaconf 2019 fueron los asistentes como que mas pude interactuar, hablar y tomar fotos.

Fue una excelente experiencia, ojalá se repita y pueda volver a asistir. Al parecer los organizadores están buscando como hacer una conferencia similar para el próximo año, así que entra en contacto con ellos y trata de brindar tu ayuda para que se haga realidad.

La entrada Mi experiencia en el Boyaconf 2019 se publicó primero en El blog de Skatox.

Desde hace un par de años he sido seguidor del evento de Nerdearla. Principalmente por ser organizada por sysarmy, una de las mejores comunidades de habla hispana sobre tecnología, servidores, seguridad, etc. Ademas el año pasado tuvieron en el evento una excelente charla con John Romero, quien es uno de mis héroes como programador por ser co-creador de Doom, Wolfeinstein, id Software. Y este año tuve la oportunidad de ser ponente dando una charla sobre las DevTools de los navegadores web.

El navegador es tu mejor amigo para el desarrollo web

A pesar de haber dado esta charla en varias oportunidades. En esta ocasión actualicé el contenido y utilicé como ejemplo la página de Nerdearla. Ya que la audiencia tuvo que haber visto la página y así estar familiarizado con los ejemplos.

Respecto a las herramientas, compartí las mas básicas pero modernas. Así que si deseas conocer sobre como usarlas, te recomiendo ver mi presentación e iniciarte en el mundo de las DevTools.

YouTube Video

Mi presentación sobre las DevTools para Nerdearla 2022

Cómo conseguir mas información de las DevTools

Si estas interesado en el tema y deseas conocer mas sobre ello, te recomiendo visitar DevTools tips, una página con una gran recopilación de consejos que puedes usar para mejorar tu flujo de trabajo en el navegador.

La página de Firefox Developer Edition contiene material introductorio para comenzar a usar estas herramientas. También puedes consultar Mozilla Web Docs que contiene buen material sobre cada herramienta al igual que la documentación oficial de Chrome sobre las Devtools.

Con estos enlaces y mi charla, puedes empezar a usar las Devtools de tu navegador favorito para mejorar y optimizar tu flujo de trabajo. Y si te gustó el contenido de este artículo compartelo en tus redes sociales para que otros también puedan aprender sobre este gran tema.

La entrada Mi charla sobre las DevTools del navegador en Nerdearla 101 del 2022 se publicó primero en El blog de Skatox.

Las aplicaciones de escritorio remoto son aquellas que se instalan en una computadora, para permitir que un tercero se conecte a esa computadora desde Internet. Esta aplicación permite a quienes se conectan: ver la pantalla, controlar el mouse y teclado para usarla como si estuviese sentado frente a ella.

Con el escritorio remoto te puedes conectar remotamente a otros y trabajar como si estuvieses allí
Desde un equipo te puedes conectar remotamente a otros y trabajar como si estuvieses allí

¿Cuándo usar escritorio remoto?

Este tipo de aplicaciones te ayudan mucho para resolver problemas. Para entenderlo mejor, consideremos los siguientes escenarios donde usar escritorio remoto te resolverá tus problemas:

  • Sirve para acceder a tu computadora desde cualquier parte del mundo. ¿Olvidaste un archivo? ¿Necesitas acceder a información en tu computadora? ¿Solo puedes acceder a tu banco desde tu equipo? Con este tipo de aplicaciones puedes acceder a tu equipo como si estuvieses frente a él, acceder a los archivos y enviarlos.
  • ¿Tu banco o página institucional sólo permite el acceso al sistema desde tu equipo? Accede y entra desde tu equipo. Como el equipo donde esta instalado el escritorio remoto es realmente quien accede a Internet podrás entrar sin problemas a sitios autorizados desde cualquier lado.
  • Si necesitas reparar o hacer soporte técnico a nivel de software a una computadora. ¿No puedes o deseas evitar transportarse para acceder físicamente al equipo? Conectándote remotamente puedes acceder y realizar el trabajo de soporte sin problemas y luego cobrar por el servicio. Si necesitas reiniciar, el software se puede configurar para que se encienda cada vez y evitar quedarte sin conexión.
  • En mi caso, necesito acceder a páginas restringidas a Venezuela. No existen buenos VPN (y no confío en muchos de ellos) por lo que me conecto a mi equipo allá y así puedo acceder a realizar las tareas que necesito. A pesar de estar fuera de Venezuela, el equipo local con la aplicación de escritorio remoto sí. Entonces la conexión se hace desde ahí y no habrá problemas.
  • Muchas personas utilizan estas aplicaciones para la enseñanza. Puedes conectarte a la computadora de tu estudiante y trabajar juntos en el problema académico, controlar las láminas que está viendo, entre otras cosas.

Qué aplicaciones usar

Casi todos los sistemas operativos poseen una herramienta incluida que permite el acceso remoto. Por ejemplo en Windows está Remote Desktop, Linux y MacOS traen servicios de VNC (un protocolo para conectarse a escritorio remotos) y aplicaciones gráficas para conectarte con pocos clic. Las diferencias entre estas aplicaciones son muy pocas y funcionan casi igual, tal vez que unas cifran la información, otras comprimen la data transmitida, otra permite usar distintas resoluciones, entre otros.

Sin embargo, también hay aplicaciones como AnyDesk (puedes descargar AnyDesk aquí) que ofrecen mas funcionalidades como tener pestañas para conectarse a múltiples equipos al mismo tiempo, ver las aplicaciones a la misma resolución, mejor ancho de banda entre otros. Para mas información de este tema, no dudes en visitar la web oficial de AnyDesk.

YouTube Video

Beneficios de usar un software de escritorio remoto

  • Permite usar una computadora totalmente: acceder archivos, escritorio, lanzar programas, entre otros. Desde cualquier parte del mundo a través de Internet.
  • El punto anterior, te permite hacer trabajo a cualquier persona sin tener que acceder físicamente al equipo. Puedes trabajar, dar clase, presentaciones, demostraciones y demás desde Internet.
  • Puedes acceder a otra computadora y utilizar su conexión de Internet para realizar cualquier tarea. Es decir, la computadora remota funciona de proxy o VPN.
  • Puedes acceder a un equipo con cualquier sistema operativo desde otro diferente. Por ejemplo, desde un celular Android  puedes conectarte a un equipo Windows para ejecutar un programa. O desde un iPhone conectarse a tu máquina Linux para correr una aplicación de escritorio.

En fin, con estos beneficios puedes darte cuando del poder de usar una aplicación de escritorio remoto. Estoy seguro que te ayudará a resolver mas de un problema que tienes a bajo costo y de una forma muy sencilla.

La entrada Los beneficios de usar un software de escritorio remoto se publicó primero en El blog de Skatox.

Hace unas semanas empecé usar JAMStack para rehacer mi sitio profesional usando tecnologías mas nuevas (el stack original tenía 11 años pero es tema de otro artículo). Al investigar decidí usar Hugo y me enteré de la HugoConf. Por lo que envié una propuesta de mi experiencia y fui aceptado a participar en ella.

Afiche de la HugoConf 2022 de la charla de la experiencia de usar JAMStack con Hugo viniendo de un entorno LAM
Mi charla del HugoConf 2022

Mi camino desde el stack LAMP hasta JAMStack con Hugo

Esta presentación es un tema totalmente nuevo. Decidí enfocar mi experiencia de hacer mi primer sitio web con Hugo viniendo de muchos años de hacer sitios con PHP/MySQL y con WordPress (es decir, con o sin CMS). En ella les comento como es el proceso para elegir un generador de contenidos, porqué usé Hugo, las características y herramientas que provee Hugo, como empezar a hacer sitios, ventajas y como hacer optimizaciones del sitio para que cargue muy rápido.

Te recomiendo verla a continuación si deseas conocer como es eso de crear sitios web estáticos y deseas conocer como comenzar:

YouTube Video

Mi charla en el HugoConf 2022

Mi experiencia en la HugoConf 2002

Fue excelente evento totalmente virtual. Como estaba empezando a usar Hugo fue interesante ver todo lo que puedes hacer con este generador de contenido estático. Y por la misma razón me sentía un poco intimidado por mi charla porque pensé que era la de menos nivel. Pero la receptividad fue muy buena, se generaron varias preguntas y tuve comentarios muy positivos de esa experiencia. Me motivó a seguirla dictando o crear nuevo contenido similar.

Palabras finales

Espero que te haya gustado la presentación. Si vienes un entorno LAMP (Linux Apache MySQL y PHP) estos consejos te ayudarán a iniciarte en el mundo de JAMStack. Pronto haré un artículo con mas detalles sobre la experiencia de usar Hugo para rehacer mi sitio profesional y obteniendo mejores resultados.

La entrada Mi charla de la HugoConf 2022: migrar a JAMStack viniendo de un entorno LAMP se publicó primero en El blog de Skatox.

Hace unas semanas Brent Roose publicó un vídeo de por qué considera mejor un tema claro en los editores de código. Me llamó la atención su opinión y los artículos que compartió que decidí intentarlo. Ya al segundo día, había notado los cambios y no volví a usar el tema oscuro exceptuando en la terminal (empecé a usar computadoras en los tiempos de MS-DOS y para mí la terminal siempre será con fondo oscuro).

El reconocido meme entre los programadores sobre el miedo a usar un editor con tema claro.
El reconocido meme entre los programadores sobre el miedo a usar un editor claro.
Fuente: @programming_tips

¿Usar un tema claro es mejor para mis ojos?

Hace tiempo leí que los temas oscuros eran mejores porque las pantallas no iluminaban tanto ni cegaban la vista, ocasionando cansancio con el tiempo. Pero al parecer sólo es válido para monitores viejos de tipo CRT. Pero viendo la entrada de Brent Roose, en él comparte enlaces a varios artículos y estudios donde muestran que el ojo humano está acostumbrado a reconocer patrones oscuros sobre fondo claro. Por ejemplo, el ojo al ver algo oscuro va a tardar mas en procesarlo que en fondo blanco, pero en cambio, cuando hay colores fuertes sobre fondo oscuro, la información queda mejor grabada en el cerebro. Pero en el caso de programar, nos interesa es tener menor cansancio y ser productivos durante el día.

Para mayor información del tema, te recomiendo leer el artículo sobre el lado oscuro del modo oscuro y el estudio sobre el efecto de mejores visualizaciones en la comprensión de código fuente.

Si aún no te convences, fíjate en la siguiente imagen extraída del artículo anterior. Cómo es mas fácil de reconocer el rostro de la derecha porque la información que necesita nuestro está en color oscuro y con fondo claro. Si aplicas esta lógica para el código, veras como nuestro cerebro necesita menos tiempo para reconocer texto oscuro en fondo claro. Suma ese tiempo a lo largo del día, cada vez que haces desplazamiento del texto o cambias de ventana, al regresar al editor y leer el código, estarías ahorrando un tiempo.

Es mas fácil distinguir al Abraham Lincoln
El rostro de la derecha es mas fácil y rápido de reconocer que de la izquierda. Fuente: Tidibits

Al ver este ejemplo, me convencí de que es mejor tener la tipografía oscura sobre el fondo blanco. Inicialmente era probarlo por una semana pero ya al segundo día vi mejoras y me quedé usándolo.

Mi experiencia usando el tema claro luego de una semana

El cambio mas inmediato que noté fue que al cambiar entre el editor y el navegador. Como la mayoría de las páginas suelen ser fondo claro con letras oscuras. No hay cambio brusco de colores al cambiar de aplicaciones. Imagino que si usas todo en modo oscuro pasa lo mismo, pero la web es clara por defecto y no todas las aplicaciones tienen un modo oscuro.

Durante la semana, si noté menos cansancio lugar de mirar la pantalla luego de varias horas usando el tema claro. El hecho de bajarle el brillo al monitor al principio porque me encandilaba el fondo blanco, posiblemente ayudó a reducir el agotamiento visual. Porque ahora la pantalla no necesitaba tanto brillo para mostrar el contenido a diferencia de cuando el modo oscuro es usado. También indirectamente esto debería disminuir el consumo eléctrico del monitor al requerir menos brillo.

Respecto a los colores del código, no vi ningún cambio porque a pesar de ser diferentes, resaltan la misma información. Durante las primeras horas me costó el cambio pero luego de me adapté.

En mi opinión, si vale la pena cambiar a un tema claro y si siento que me descansa mas la vista al durar varias horas en él. La adaptación me llevó dos días y luego me pareció normal el nuevo esquema de colores.

¿Cuando no recomiendo usarlo?

En monitores antiguos de CRT siento que se cansa mas la vista usando un tema claro, porque hay mas brillo en la pantalla. Pero si tienes un monitor moderno no ocurre lo mismo.

Sin embargo, si tienes una pantalla OLED y necesitas ahorrar batería, usar el modo oscuro puede darte de 3% a 9% mas tiempo de energía. Podría no parecer una cifra significante, pero si estas en una emergencia laboral y no tienes suministro eléctrico. Ese tiempo adicional es valioso.

Otro punto donde no recomiendo, es al momento de explicar o hacer presentaciones. El hecho de usar un fondo oscuro con letras de colores, facilita que se guarde la información del contenido de las palabras. Ahí no importa la velocidad de procesamiento de la información sino que resalte y se almacene en las personas que ven el código.

Recomendaciones finales

Te recomiendo probar durante una semana usar un tema claro. Recuerda que si sientes que te estas cegando de tanta luz, entonces significa que debes bajar el brillo de la pantalla y mejorar la iluminación de la habitación/oficina. Luego en un par de horas es probable que te acostumbres y sientas la diferencia.

¡Pruébalo y mejora tu salud visual!

La entrada Usar el tema claro en el editor de código es mejor y te explicó por qué se publicó primero en El blog de Skatox.

Durante varios años he publicado como es mi escritorio ( también conocido como desktop setup en inglés) y pueden ver como ha ido cambiando poco a poco. He ido comprando y agregando nuevos accesorios hasta que estoy en un punto donde (por ahora) creo que es suficiente.

El escritorio / desktop setup de Skatox
Mi escritorio del 2022

La idea es tener todo lo necesario para trabajar en casa. Poder estar cómodo y productivo durante la jornada laboral. Aparte de la computadora, recomiendo tener audífonos que eliminen ruidos exteriores. Buen micrófono y cámara web para las reuniones, entre otras cosas. Si estás pensando en montar tu oficina en casa, te recomiendo leer mis consejos para tele-trabajo desde casa.

Parte del equipamiento lo hizo la compañía donde he trabajado en los últimos años. Luego he ido comprando por mi parte otros accesorios como teclado, trackpad, audífonos, bases, ratón, entre otros. Pero desde que ocurrió la pandemia del 2020 muchas conferencias pasaron a ser remotas y necesitaba cosas como una buena cámara y micrófono, para participar en ellas. Gracias a los organizadores de JSConf México que me regalaron la cámara web y micrófono, solventando esa necesidad.

Los componentes de desktop setup

Los principales componentes de mi escritorio son:

  • Mac mini de 16GB con el chip Apple M1, 512GB de disco duro.
  • Monitor LG UltraFine 32BN88U-B
  • Magic Keyboard y Magic Trackpack 2
  • Mouse Logitech Mx Master 2s
  • Silla gamer
  • Micrófono Shure MV5C

Todos estos productos los pueden encontrar en Amazon o en la página de cada fabricante. Para evitar tomar muchas fotos de cada producto y escribir un montón de párrafos sobre sus características. Decidí hacer un video para ver mas detalles de mi desk setup, espero que te gusté y lo puedes ver a continuación:

YouTube Video

Para finalizar, si les gustó ver como es mi desktop setup, no duden en dejar su opinión o comenten como es el suyo. Así tomamos ideas para mejorar nuestra configuración actual.

¡Feliz trabajo en casa!

La entrada Mi oficina remota (office & desktop setup) 2022 se publicó primero en El blog de Skatox.

AppCleaner es una aplicación para borrar aplicaciones y sus datos en MacOS. Te preguntarás por qué es necesario usar aplicación de ese tipo. Pues resulta que en MacOS las aplicaciones vienen empaquetadas como en contenedores, que instalas arrastrándolas a la caperta /Applications. Para desinstalarlas simplemente borras la aplicación de esa carpeta: parece un icono pero en realidad es como un carpeta/contenedor con los archivos y librerías que necesita el programa para funcionar.

¿Qué pasa si solo borramos la aplicación de /Applications?

Resulta que las aplicaciones a veces suelen guardar archivos en otras carpetas para su funcionamiento. Por ejemplo, MySQL guarda las base de datos en otra carpeta, los archivos de configuración en otra. Entonces si borramos la aplicación, todos archivos quedan en nuestro disco ocupando espacio.

Si hacemos esto durante muchos años y varias veces con otras aplicaciones, acumularemos mucho espacio en disco que no estamos usando.

AppCleaner se encarga de borrar todo

AppCleaner es una herramienta fácil de usar. Simplemente arrastras la aplicación que deseas eliminar y luego te muestra una lista de archivos que crean las aplicaciones.

Interfaz de AppCleaner
Arrastra la aplicación a eliminar al programa para iniciar la desinstalación

Con esta lista puedes seleccionar si deseas eliminar todo o solo algunas cosas. Me gusta que muestra el espacio que ocupa en el disco, entonces, puedes decidir si obtener ese espacio libre o si la información es relevante para ti (o la necesitas para el futuro) dejarla en el disco.

Lista de datos que borrará AppCleaner
Lista de datos que borrará AppCleaner

Lamentablemente AppCleaner solo funciona para aplicaciones que vas a desinstalar. Si necesitas una para archivos existentes que quedaron de desinstalaciones previas sin usar este programa. No podrás limpiarla con esta aplicación.

Sin embargo, espero que esta entrada de mi blog te ayude a tener el disco de tu mac limpio de datos innecesarios. ¡Elimina las aplicaciones que no uses de forma efectiva!

La entrada AppCleaner: desinstala en tu MacOS cualquier app y sus datos se publicó primero en El blog de Skatox.

Docker es una gran tecnología que nos permite correr los servicios en contenedores. De esta forma podemos aislar y manejar mejor nuestros entornos de desarrollo y producción. Hace unos meses tenía un contenedor de docker con Nginx corriendo código en PHP y necesitaba agregar un certificado de seguridad. Pero no sabia como hacer para instalar Let’s Encrypt en la imagen sin modificarla para poder generar los contenedores.

Descubrí que existe una versión oficial para Docker. Con ella podemos ejecutar el comando certbot que se encarga de validar y generar los certificados para nuestro dominio web. Parte del proceso consiste en subir un archivo generado a la raíz del servidor web para que el servicio de Let’s Encrypt puede acceder remotamente y así validar que el dominio es nuestro. Pero por la naturaleza de los contenedores, es como complicado hacer que certbot suba archivos al contenedor del servidor web.

La solución para ello es utilizar volúmenes. Abrimos certbot y le indicamos que la ruta a subir el archivo sea la carpeta que se monta como volumen en el servidor web.

Docker + Let's Encrypt = Amor
Puedes combinar estas tecnologías para hacer sitios mas seguros.

Generar el certificado con el contenedor de Let’s encrypt

Para ello, puedes ejecutar el siguiente comando. Lo que hace es decirle a docker que ejecute el comando de generación de certificados en las carpetas deseadas para el dominio definido y lo haga dentro de la imagen certbot/certbot que ofrece let’s encrypt. Recuerda agregar este comando al cron para que se ejecute por lo menos semanalmente o cada 3 días (me parece exagerado hacerlo diariamente)

/usr/bin/docker run -it --rm -v /CARPETA_CON_LOS_CERTIFICADOS:/etc/letsencrypt -v /CARPETA_SERVIDOR_WEB:/app certbot/certbot certonly -a webroot --webroot-path /app -d MI_DOMINIO

Recuerda sustituir en este comando las siguientes variables:

  • CARPETA_CON_LOS_CERTIFICADOS es la carpeta donde se van a guardar los certificados generados. La configuración de tu servidor web debe apuntar a este lugar.
  • CARPETA_SERVIDOR_WEB es la carpeta raíz del dominio dentro del servidor web. Es decir si subes un archivo llamado test.txt debería estar visible en midominio.extension/test.txt . De esta manera certbot puede subir el archivo que permite confirmar que eres dueño del dominio a asegurar con certificado.
  • MI_DOMINIO es el dominio público para el cual se crearán tus certificados de seguridad.

Configurar el servidor web para usar los certificados

La aplicación Certbot de Let’s encrypt tiene un comando para auto-configurar los servidores web donde esta funcionando. Debido a que estamos un contenedor para Let’s encrypt y otro para el servidor web. No habrá comunicación directa entre ello, por lo que recomiendo actualizar la configuración manualmente, en mi caso, para una pagina hospedada con nginx la sección es la siguiente:

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/MI_DOMINIO/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/MI_DOMINIO/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

Luego de esto, debes reiniciar el servidor web (en mi caso aprovecho y reinicio el contenedor del servidor para liberar memoria) y ya deberías tener tu dominio con el certificado web generado por let’s encrypt.

¡Ahora puedes disfrutar de un sitio web mas seguro!

La entrada Como usar Let’s Encrypt (versión de Docker) junto a un servidor web corriendo en Docker se publicó primero en El blog de Skatox.