El primer acercamiento a un homelab
Hola de nuevo, bienvenido a esta serie de posts que he denominado “El camino a tu propio homelab”.
En este post te invito a que podamos adentrarnos en lo que he implementado durante este tiempo en mi propio homelab, el hardware con el que dispongo y el software que tengo instalado y configurado.
Arquitectura
La siguiente imagen es una vista general de mi homelab, el cual cuenta básicamente con tres máquinas, dos de ellas son Raspberry PIs versión 4 de 4GB de RAM y 32GB de almacenamiento interno. La otra máquina es un HP 550 del año 2008 que recuperé y re-acondicioné, añadiendo un disco de estado sólido y 4GB de RAM.

Como podrás deducir no son computadores cuánticos, sino que son solo simples máquinas de bajo consumo y costo que me permiten experimentar, pero con una gran retribución educativa.
Hasta aquí, todo se lee genial y muy sencillo, pero ¿eso es todo?. La respuesta es NO. Profundicemos un poco más en lo que respecta a los servidores de este homelab.
Servidores
Tal como te mencionaba mi arquitectura cuenta con tres máquinas, las cuales he nombrado como jarvis, friday y karen, que hacen referencia a las IAs de Tony Stark (si, muy nerd 🤓).
Cada una de ellas cuenta con configuraciones básicas como la shell, paquetes o herramientas útiles, ajustes en el sistema operativo para mayor seguridad, acceso a través de ssh, entre muchas cosas más. Además, cada máquina es parte de una red VPN creada con twingate, brindándome la posibilidad de conectarme a mi homelab desde cualquier lugar y añadiendo capas de seguridad adicionales a través de sus políticas de acceso. Todo esto, gratis.
Además de todo lo anterior, las máquinas de mi homelab tienen ciertas responsabilidades particulares.
Jarvis
Tal como podrás ver en la siguiente imagen se evidencian las responsabilidades de Jarvis.
Jarvis ha sido configurado para ser el servidor principal de mi red, el cual cuenta con acceso a todas las máquinas a través de SSH, además de administrar las siguientes herramientas.

Pihole es la herramienta que permite administrar y configurar los registros DNS de mi red interna y así facilitar el acceso a los dominios que tengo configurados. Además, pihole es el encargado de bloquear anuncios o publicidad y proteger mi red del tráfico no deseado. Lo anterior lo logré definiendo jarvis como el servidor DNS primario en las configuraciones de mi router.
Nginx es el punto central de acceso para los dominios configurados en mi red para luego distribuir el tráfico al host y puerto que corresponda.
Básicamente, es un proxy reverso que añade una capa de configuración y seguridad a cada solicitud.Certbot es la herramienta que me permite darle seguridad a mis dominios, generando certificados válidos utilizando let’s encrypt y así contar con dominios seguros bajo https.
Los certificados creados por certbot son utilizados posteriormente en las configuraciones de nginx, por lo que todo el tráfico que se genera en mi red viaja encriptado.Portainer me permite probar y experimentar con aplicaciones a través de contenedores de docker, sin la necesidad de añadir software adicional a mi máquina.
Github Runner es la herramienta que utilizo para que los cambios que realice en el repositorio de mi homelab se vean reflejados en mi infraestructura.
En otras palabras, toma los cambios de mi repositorio y las aplica en mi homelab asegurando de tener siempre la versión más reciente.
Karen y Friday
Como mencionaba anteriormente mi homelab cuenta con dos raspberry PIs que en su conjunto forman un clúster de kubernetes (k8s), donde friday es el nodo principal y karen el nodo secundario. En este caso estoy utilizando k3s, el cual es una versión más liviana y utiliza la mitad de los recursos de la versión original de k8s, pero es cien por ciento compatible.

Como puedes apreciar, entre las herramientas más destacables del clúster se pueden encontrar ArgoCD y Longhorn.
ArgoCD es la herramienta de entrega continua que utilizo para administrar e instalar desde secretos, configuraciones y cualquier componente de kubernetes en el clúster. Los archivos de manifiestos son versionados en mi repositorio y argocd se encarga de bajar esos cambios y aplicarlos.
Longhorn es la herramienta encargada de administrar el almacenamiento distribuido en el clúster, en otras palabras, se hace cargo de entregar espacio en el disco duro y asignarlo a los servicios desplegados.
Automatización
A lo largo de este post he mencionado las herramientas más relevantes que tengo en mi homelab, pero, hay una más que es imprescindible para mi ya que ayuda a mantener todo en orden a la hora de automatizar. Esta es Ansible.
Ansible permite automatizar tareas repetitivas como instalar software, aplicar configuraciones en el sistema operativo, crear usuarios, entre muchas cosas más. Todo esto es configurado a través de archivos yaml con una estructura definida y sencilla, haciendo que la mantención de tus máquinas sea una tarea simple y mantenible en el tiempo.
Lo anterior, también es conocido como Infraestructura como código o en inglés Infrastructure as code (IaC).
Si quieres leer más acerca de Ansible, te recomiendo leer su documentación oficial.
Conclusión
Lo que hemos compartido en los párrafos anteriores, son solo algunas de las cosas que puedes lograr con tu homelab, cubriendo áreas como seguridad, infraestructura, automatización de procesos, entre muchas cosas más.
En el mundo del homelab puedes encontrar una infinidad de herramientas que puedes probar o instalar. Es por esto quiero compartir algunos recursos que puedes revisar y encontrar lo que más se acerque a tus necesidades.
Si te gusta el contenido, dale like y suscríbete, así podrás enterarte cuando suba más posts como este.
Si quieres conectar o compartir puedes encontrarme en GitHub o LinkedIn.
Ayúdame a seguir creando contenido interesante, apoyándolo con cafeína.
Let’s have fun!


