De Proxmox a NixOS con Incus: la migración a un homelab declarativo

Fuentes: I've gone full Nix: Proxmox to NixOS + Incus

El ingeniero Bas Nijholt ha abandonado por completo Proxmox para reconstruir su homelab sobre NixOS con Incus como gestor de contenedores y máquinas virtuales. El artículo, publicado en su blog personal, detalla el proceso de migración y las razones técnicas que le llevaron a sustituir un hipervisor basado en interfaz gráfica por un sistema definido íntegramente en archivos de texto declarativos.

El autor describe su recorrido desde el escepticismo inicial hacia Nix —al que consideraba innecesario frente a sus herramientas previas Dotbot y dotbins— hasta su conversión definitiva. El punto de inflexión llegó con los problemas de controladores NVIDIA en su PC gaming: tras quedar atrapado en un bucle de arranque de GRUB al actualizar drivers de forma imperativa, instaló NixOS y comprobó que las actualizaciones atómicas resolvían el problema. La prueba definitiva fue migrar el sistema a un disco nuevo aplicando la misma configuración: el resultado fue idéntico, byte a byte, sin necesidad de clonar el disco.

Nijholt argumenta que Proxmox, aunque excelente para introducirse en la virtualización, impone un paradigma GUI-first propenso al desfase de estado: los cambios manuales se olvidan y la infraestructura como código queda desincronizada. Con NixOS, en cambio, toda la configuración del host vive en archivos versionados, incluido un servicio systemd documentado que desactiva las funciones TSO y GSO de la tarjeta Intel I219-LM para evitar cortes de red. Además, el host puede ejecutar Kodi como HTPC e Incus simultáneamente en el mismo hardware, algo inviable en Proxmox sin pasar la GPU a una máquina virtual.

El artículo también destaca la sinergia con agentes de IA: dado que toda la infraestructura es texto declarativo, los agentes pueden leer, modificar y verificar cambios mediante git diff, en lugar de navegar por menús opacos. Incus, la bifurcación comunitaria de LXD, aporta la madurez operativa —migración en vivo, contenedores persistentes— que proyectos puramente nix como nixos-containers o microvm.nix aún no ofrecen.