Infraestructura

Albgott — Private Lab

De «¿está funcionando?» a saberlo antes de que alguien lo pregunte. Albgott es la infraestructura privada que sostiene mis proyectos: una nube autogestionada, aislada y monitorizada, donde cada servicio tiene su lugar y cada fallo deja rastro. La tengo en casa desde 2023 y la llevo como si tuviera clientes detrás, aunque el único al que le suena una alerta soy yo.

  • Self-hosted
  • Proxmox
  • Docker
  • Jenkins
  • Prometheus
  • Grafana
  • WireGuard
Una Raspberry Pi, un Dell Micro, un Dell de sobremesa y un portátil metidos en un armario. Ese es todo el centro de datos.

Supongo que a mucha gente le ha pasado esto: llegas a una empresa que lo tiene todo muy automatizado. Abres un pull request y se levanta solo un servidor para poder probar la nueva versión de la API mientras se discute si entra o si hay que cambiar algo. Si entra, se compila y se sube a producción; si no, desaparece. Todo en minutos y sin que nadie mueva un dedo.

Y ahí te pica la curiosidad: ¿cómo se hace esto?, ¿qué necesito yo para montarme algo parecido? Así que te pones a jugar con AWS y con servicios de terceros, y es entretenidísimo, hasta que te dejas un par de máquinas encendidas y te llega una factura de 300 € por un mes de pruebas cutres.

La conclusión no fue dejar de aprender esto, sino dejar de pagarlo por horas. Junté el hardware que ya tenía rondando por casa, lo metí en un armario y volví a empezar, esta vez en un sitio donde equivocarte cuesta electricidad y no dinero.

Si la lío, que la líe yo solo

Aquí no hay una sala de servidores. Esto está en un piso, colgando de la misma línea de internet que el resto de gente que vive conmigo. Así que lo primero fue partir la red en trozos, para que si meto la pata no se lo lleve por delante nadie más. El laboratorio va por sus propias zonas aisladas, la Wi-Fi de casa no pinta nada ahí, y un contenedor que se vuelva loco con el ancho de banda o una regla de firewall mal puesta a las tantas se queda en su rincón. Nadie se queda sin Netflix porque yo esté trasteando.

Ocho zonas aisladas en vez de una sola red plana. La Wi-Fi de casa es una más, y no llega al resto.

Un portátil cutre con una infraestructura detrás

Trabajo con el portátil malo que tenga a mano y me da bastante igual lo que le pase, porque encima no lleva nada. Los archivos, las fotos, el código, las notas, el gestor de contraseñas… todo eso está en Albgott, y entro por un túnel de WireGuard. Me conecto desde donde sea y es como estar sentado delante del rack. Si el portátil se pierde, se cae al váter o revienta, cojo otro, levanto el túnel y en diez minutos sigo donde estaba.

Dos túneles y no uno: uno normal para las aplicaciones y otro aparte, con más permisos, solo para el hardware. Ninguno puede colarse en el del otro.

Lo llevo como si fuera producción

En la web está todo el detalle técnico; aquí lo resumo. Trato una caída en casa igual que trataría una en el trabajo. Cada servicio saca métricas y logs, y hay algo aparte vigilando que de verdad siga en pie. Un git push se compila, se despliega y se comprueba solo. Y cuando algo falla —que falla— me llega un aviso al móvil antes de que me dé tiempo a mirar.

Del checkout a la comprobación de salud en producción en menos de tres minutos, sin tocar nada a mano.
Cada despliegue se anuncia solo: commit, autor, archivos que cambian y URL en producción.

Lo que hay dentro

De puertas afuera, en Albgott corren varias webs. Esta misma, albertomoran.dev, sale de aquí; también albgott.com y la demo de Montes del Acebo (el formulario de contacto con el que me escribes es un flujo de n8n en la misma máquina). Por debajo está todo lo que hace que eso se aguante:

  • JenkinsConstruye, despliega y comprueba cada push
  • HarborRegistro privado de las imágenes de contenedor
  • AuthentikInicio de sesión único delante de todo
  • InfisicalSecretos, fuera de los archivos de configuración
  • PrometheusMétricas y las reglas que me avisan
  • GrafanaPaneles sobre métricas y logs
  • LokiAgregación de logs de cada contenedor
  • Uptime KumaComprobaciones de disponibilidad independientes
  • PortainerUna ventana a los hosts de Docker
  • PostgreSQLBase de datos compartida de las aplicaciones
  • RustFSAlmacenamiento de objetos compatible con S3
  • n8nAutomatizaciones y webhooks — el formulario de contacto de esta web
  • ImmichCopia y biblioteca de fotos
  • OpenCloudArchivos y documentos, autoalojados
  • BookOrbitSeguimiento de lecturas y biblioteca de ebooks
Una parte de lo que hay montado, más o menos por temas. Ni de lejos todo.

Y unos cuantos por dentro:

n8n moviendo el formulario de contacto de esta web, Portainer sobre los Docker, y BookOrbit y OpenCloud.
La página de inicio: todos los nodos, servicios y accesos en un sitio. Es lo primero que abro por la mañana.

Los tres nodos se llaman Brokkr, Eitri y Thor, por los enanos que forjaron el martillo de Thor. Esto me ha costado unos cuantos fines de semana sueltos, y montándolo y peleándome con ello he aprendido más que en cualquier curso: cómo se portan las redes de verdad, lo pesado que es operar algo bien, y lo tranquilo que se queda uno sabiendo que sus cosas están a salvo pase lo que pase con el portátil.