Homelab - Infra & Details ✱ ᐃ
Mi homelab esta dividido en 2 partes o 2 locaciones mejor dicho, por uno lado esta la casa de mis viejos y por otro lado mi casa.
Al vivir en un lugar chico, es necesario que la infraestructura sea lo mas simple posible, siempre que se pueda, para no tener que andar teniendo muchos equipos a la vista, que ocupen lugar y generen ruido. Lo mas importante es el ruido.
También es necesario que los servers tengan una estética simple, nada de colores llamativos ni RGB.
Por que?
Siempre me intereso el hardware y sobre todo los servidores. Mi primer trabajo fue haciendo soporte técnico y armando servidores de broadcast para televisión. Poder aprender, estudiar y meter mano en servidores y computadoras, siempre fue lo que mas me gusto.
El {{manifesto}} de Self Hosting, es uno de los textos que mas refleja el por qué hago esto.
A medida que fui creciendo me moví mas al software, pero nunca se apago esas ganas por tener algo de infra propia. Por eso es que cuando empece a tener los recursos empece a comprar y a armar mi propio homelab.
Hoy hace unos 5 años que vengo manteniendo distintos servicios funcionando 24/7, repartidos entre equipos enterprise, servidores mas comunes, Raspberry PI’s y algunos VPS. Sumado al mantenimiento y configuración de los servers de {{T4Lan}}. Acá {{t4lan-infrastructure}} deje detallada cual es la infra que tenemos ahí.
Los últimos años con {{Docker}} y {{docker-compose}} creo que todo se hizo un poco mas fácil y mas accesible. Tal vez no se si es fácil la palabra, pero si que esta todo mas a mano y hay un montón mas de opciones de servicios y cosas que se pueden levantar en un entorno de homelab. Cuando digo fácil, me refiero a que copiando y pegando un archivo de docker-compose y ejecutando un comando podemos tener un servicio con bases de datos corriendo en menos de 10 minutos.
Creo que también puedo dividir un poco para que uso el homelab:
- {{self-hosting}}
- game servers, {{T4Lan}}
- test environments, cybersecurity boxes
En mi opinión no hay mejor manera de aprender que metiendo mano, a veces es un poco complejo o difícil de seguir, pero teniendo hardware donde poder practicar distintas habilidades ya sea para levantar un sistema operativo nuevo, para poder configurar distintos servicios o herramientas (web servers, firewalls, logs, etc), poder instalar distintas aplicaciones y hasta poder crear distintos entornos es un punto a favor muy grande.
Como ventaja de tener equipos enterprise y poder usarlos para levantar distintas aplicaciones, es poder investigar y aprender como funcionan, tener a disposición un montón de recursos para poder hacer un montón de cosas. También eso puede ser una desventaja, así como tenemos muchos recursos también los equipos consumen un montón más de energía. Creo que es de vital importancia darle bola al tema de la energía que consumimos con nuestro homelab, si bien en Argentina tenemos un costo de energía muy bajo, no por eso tenemos que desperdiciar recursos.
Entonces ahí también entra en juego nuestro propio limite de hasta donde queremos llegar. Creo que acá se puede ver la ventaja de {{Docker}} y {{docker-compose}} que nombre mas arriba donde podemos levantar y apagar contenedores con muy poco esfuerzo.
Por otro lado creo que levantar servicios que puedan reemplazar a servicios en la nube nos da un control gigante sobre donde queda nuestra huella digital. Muchos servicios que utilizamos tienen términos y condiciones muy malos y venenosos para con nuestros datos, es necesario tener en mente eso y si tenemos la posibilidad, elegir donde queremos que queden nuestros datos guardados. Tener tu propio homelab ayuda muchísimo en la lucha por la privacidad de nosotros y nuestros datos.
homelab 2024 (113.2 KB)
Hardware
Servers
Actualmente en el departamento tengo 3 servers que funcionan independientemente.
- {{Home Assistant}}
- Raspberry Pi 4 8GB RAM.
- Solaris @ {{thinkcentre}}
- Thinkcentre M72e
- Intel i5 3470 @ 3.6GHz
- 8GB RAM DDR3 Samsung
- 250GB SSD Kingston
- 2TB HDD Western Digital Green
- pfSense @ {{homelab-router-hardware}}
- Intel(R) Celeron(R) CPU N3350 @ 1.10GHz 2 Cores
- 128GB SSD NVMe Western Digital Green
- 2GB DDR3 1600 Positivo BGH
{{Home Assistant}} tiene su propio hardware dedicado. Este fue el primero de los servers que arme y que tuve en mi homelab. En un principio tenia instalado Home Assistant mediante {{Docker}} y en el mismo server corrían otros servicios. Cuando empece a jugar un poco mas con Home Assistant, me di cuenta que HAOS, que es el sistema operativo de este, tiene muchas mas ventajas sobre la versión hosteada en Docker. Por eso es que migre todo lo que tenia y deje solo HAOS. El hardware que tiene este server alcanza y sobra para lo que es Home Assistant, pero el problema esta en que no es hardware energeticamente eficiente. Mi idea es a futuro poder migrar la instancia de HA a una {{raspberry-pi}} 4, que tiene muchísimo mejor hardware y es mas eficiente en cuanto a energía.
En Solaris corren todos mis servicios self hosteados. El 99% en {{Docker}}. Dentro de los servicios que mas utilizo están:
- Homebox (en {{como-configurar-homebox}} deje un guía para levantarlo)
- Photoprism, una instancia personal para el manejo de fotos
- {{Caddy}}, como reverse proxy
- {{Grafana}}, para todo lo relacionado a visualización de métricas y logs
- {{paperless-ngx}}, un servicio para administrar y archivar documentos
- {{vaultwarden}} para gestionar mis contraseñas
- {{archivebox}} que lo utilizo para archivar paginas de forma local
- {{portainer}} para manejar stack de servicios.
En {{journey}} tengo documentado con mas detalles los servicios que tengo corriendo, cuales son fundamentales y como es el proceso que sigo para probar nuevos servicios.
El armado y la instalación del router esta explicado en este documento {{homelab-router-hardware}}.
Networking
Esta documentado en {{homelab-networking}}.
Consumo energético
La ultima medición la realice en Febrero 2024 y pude medir los siguientes datos:
- 48.6 W (average)
- 0.301A - 0.277A
- 0.70 Power Factor
Esto es el consumo total de todos los dispositivos que liste mas arriba. A comparación con el consumo de una computadora gamer (con placa de video) que puede rondar los 90W o más, la verdad es que es bastante eficiente y estoy contento con las mediciones.
Actualidad
El manejo de cables es una de las cosas que realmente me falta darle bola, si bien casi todos los cables están escondidos detrás de los escritorios, de la tele y de los servers, es difícil que no se vea ningún cable.
Hay una idea que tengo pendiente que es llevar la estructura, los cables, los gabinetes, los colores a un lugar mas {{homelab-aesthetics}}, donde las cosas tengan paletas de colores compartidas que no haya nada que sobresalte y que los cables queden elegantes a la vista. Es algo que quiero hacer, pero todavía no arranque.
Esta fue la primera versión donde solo tenia el server de {{Home Assistant}}, sin {{router}} y sin {{solaris}}.
homelab infra v1 (+ pelos de gatos) (113.2 KB)
Esta fue la segunda versión donde los 3 servers junto con el switch están funcionando a un costado de mi escritorio.
homelab departamento 2023 (113.2 KB)
Uno de los últimos update que hice en el homelab fue el ap {{tplink-eap620-hd}}.
tplink-eap620-mounted-2.jpg (113.2 KB)
Future updates
Algunas de las cosas que tengo pensado cambiar y actualizar a futuro:
- Migrar el server de {{Home Assistant}} a una Raspberry Pi 4
- Agregar un NAS, para el manejo de media (música, películas, series, libros y podcasts)
- Mejorar la configuración de la red, seguir investigando como funcionan y como se configuran las VLAN’s.
Filosofía e Ideas
- Consistencia
- a medida que el homelab va creciendo, una de las cosas que mas tiende a cambiar es la consistencia. A medida que voy aprendiendo nuevas herramientas o nuevas formas de hacer las cosas, puede que haya configuraciones que queden diferentes pero que signifiquen lo mismo.
- por esto es que todo lo relacionado al homelab tiene que pasar por un proceso que llamo “consistency check”
- ej: el nombre de servicio que elijo tiene el mismo formato que los servicios existentes?
- el nombre de las carpetas donde almaceno datos de servicios / aplicaciones tiene el mismo formato en todos los servicios?
- Aprendizaje
- uno de los puntos centrales de todo esto es el aprendizaje, esto lo hago por que me interesa aprender, por que me interesa saber como funcionan distintos tipos de tecnologías, aprender a manejar distintas aplicaciones y servicios, interactuar con distintos tipos de sistemas operativos.
- todas mis acciones tienen que estar enfocadas, al menos como ultima opción, en el aprendizaje.
- parte de ese aprendizaje pasa por escribir y mantener la documentación de todo lo que voy haciendo acá.
Changelog
2024-01-31
Por primera vez en bastante tiempo pude configurar una VLAN dedicada a dispositivos IOT. Por el momento es una VLAN mas, como la LAN, pero en la configuración tuve que tocar 3 equipos, el {{homelab-router-hardware}}, el switch {{tplink-sg1024de}} y el ap {{tplink-eap620-hd}}. Quedo funcionando junto con una red WIFI especifica para estos dispositivos. El próximo paso sería configurar el firewall de la VLAN para que no tenga salida a internet.2024-01-08
Estoy actualizando el server de {{Home Assistant}} por una {{raspberry-pi}} 4. La idea es dejar de usar el server viejito que consume un montón de recursos y pasar a algo mas simple y mas poderoso.homelab status 2024 (113.2 KB)