Lightwhale 3: volver a hacer divertidos los servidores Linux
(lightwhale.asklandd.dk)- Un OS de servidor Linux diseñado exclusivamente para contenedores Docker: al arrancar el ISO entras de inmediato en un entorno con Docker Engine
- Mantiene el sistema central con una arquitectura inmutable y sin estado, y separa
/etc,/var,/homey los datos de Docker en áreas de escritura independientes, reduciendo mucho la carga de instalación y configuración inicial - El sistema de archivos de datos predeterminado es un almacenamiento volátil basado en tmpfs; al activar la persistencia detecta automáticamente un dispositivo de almacenamiento aparte, lo particiona, formatea y monta, y si hace falta también lo configura como Btrfs RAID1
- Usa una raíz de solo lectura basada en
squashfsy componentes mínimos para reducir la superficie expuesta a malware o cambios no intencionales, además de bajar el uso de recursos y el consumo eléctrico - Solo para x86-64, funciona en bare metal y máquinas virtuales, y permite enfocarse de inmediato en ejecutar contenedores y operar servicios self-hosted más que en administrar el servidor en sí
Resumen
- Es un OS de servidor Linux diseñado exclusivamente para contenedores Docker; si haces un arranque live desde el ISO, entras directamente en un entorno con Docker Engine
- Para reducir la carga de instalación y configuración inicial, mantiene el sistema central como una estructura inmutable y separa los datos y la personalización del usuario en áreas de almacenamiento independientes
- Apunta a homelabs, bare metal, entornos virtualizados, nodos edge y hasta clústeres, pero la arquitectura compatible está limitada a x86-64
- Prioriza una configuración mínima y la facilidad de uso para que puedas concentrarte más en ejecutar y operar contenedores que en la administración del servidor
Características principales
- Es de tipo plug and play: basta con descargar el ISO y arrancarlo para tener listo un Docker Engine con las herramientas necesarias
- Minimiza los componentes para reducir la curva de aprendizaje y permitir entender rápido cómo funciona el sistema
- Usa un núcleo inmutable y sin estado para reducir la superficie expuesta a malware y cambios accidentales, y arranca siempre en el mismo estado
- Ofrece persistencia opcional; el sistema de archivos de datos predeterminado es
tmpfsvolátil en RAM, y al activar la persistencia detecta, particiona, formatea y monta automáticamente un dispositivo de almacenamiento aparte - Reduce procesos innecesarios para bajar el uso de recursos y el consumo eléctrico, permitiendo aprovechar por más tiempo equipos viejos o de bajos recursos
- Facilita el self-hosting para reducir la dependencia de Big Tech y permitir administrar directamente tus datos y tu privacidad
Cómo empezar
- Puedes descargar el ISO más reciente o bajar la imagen desde la sección de descargas, grabarla en un USB y arrancar desde ahí
- En algunos sistemas puede ser necesario desactivar safe boot en el BIOS antes de arrancar
- El inicio de sesión por defecto usa el nombre de usuario
opy la contraseñaopsecret; antes de exponerlo a Internet, como mínimo debes cambiar la contraseña - El Wi‑Fi puede configurarse opcionalmente con
setup-wifi - La ejecución de contenedores es igual que con Docker normal; como ejemplo se usa
docker run -it --rm busybox ps - Al activar la persistencia, el magic header debe escribirse en un dispositivo de bloques, no en una partición, y este proceso borra los datos existentes
Estructura de arranque y ejecución
- El ISO puede arrancar tanto en bare metal como en máquinas virtuales, y soporta tanto UEFI como BIOS tradicional
- El proceso de inicio usa un sistema init similar a sysv para mantener un flujo de arranque simple y transparente
- El bootloader carga en memoria el kernel de Linux y el sistema de archivos raíz, luego el kernel inicializa el hardware y cede el control a
/init initlee/etc/inittab, montatmpfspara/tmpy/run, y luego ejecuta los scripts de/etc/init.d- En una fase temprana monta el data filesystem para proporcionar los datos de Docker y la capa superior de overlay para
/etc,/vary/home - Una vez que todos los sistemas de archivos y overlays están listos, se inician los servicios restantes, y desde ese momento ya puede servir contenedores
Diseño de inmutabilidad
- El sistema de archivos raíz se entrega como una imagen estática comprimida
squashfs, con una estructura que no puede modificarse por sí sola - Gracias a esto, el software esencial y la configuración ya vienen incluidos, por lo que se vuelve una imagen autosuficiente que puede arrancar sin proceso de instalación
- Evita gestores de paquetes, manejo de dependencias y la competencia con actualizaciones sobre un sistema existente, reemplazando la tarea de volver a instalar algo que ya funciona por un simple reinicio
- Los archivos del sistema de archivos raíz no pueden borrarse por accidente ni modificarse por virus, y a diferencia de un sistema tradicional, no expone el kernel ni los binarios base a un estado completamente modificable
- Al tener una raíz de solo lectura, evita la acumulación de basura que suele quedar con el tiempo y perjudica respaldos, rendimiento y limpieza del sistema
- Puedes probar libremente en una VM local o en otra computadora, y revertir los cambios con solo reiniciar
- El medio de arranque no contiene información importante y conserva ese estado gracias a la inmutabilidad, así que aunque el dispositivo se dañe o se pierda, puede recuperarse con una copia nueva
Estructura de persistencia
- Para instalar y ejecutar contenedores, cambiar configuraciones y escribir datos, se necesita un sistema de archivos escribible; si quieres conservarlo después de reiniciar, hace falta persistencia
- En una etapa temprana del arranque, un subsistema que se ejecuta automáticamente monta el data filesystem en
/mnt/lightwhale-data - Los datos que escribe Lightwhale se agrupan bajo
/mnt/lightwhale-data/lightwhale-state, y ese directorio se convierte en la capa superior escribible deoverlayfs - El valor por defecto es
tmpfsvolátil, y al activar la persistencia el data filesystem pasa a ubicarse en un dispositivo de almacenamiento separado - En vez de superponer toda la raíz, solo aplica overlay de forma selectiva sobre
/etc,/vary/homepara conservar el objetivo de la inmutabilidad/etcse usa para personalizar configuraciones del sistema como red, contraseñas ysshd/varse usa para logs y otros datos de aplicaciones/homese usa para personalizaciones del usuario como claves SSH autorizadas, clonar repositorios Git y administrar stacks de Docker o Swarm
- El data root de Docker se ubica directamente en
/mnt/lightwhale-data/lightwhale-state/docker, donde guarda el estado de imágenes, contenedores, volúmenes y redes
Activación de la persistencia y pasos automáticos
- La persistencia debe activarse explícitamente escribiendo un magic header en el dispositivo de almacenamiento, por ejemplo con
echo "lightwhale-please-format-me" | sudo dd conv=notrunc of=/dev/sdx - Puedes escribir el magic header en varios dispositivos de almacenamiento y, en ese caso, se combinarán como un volumen Btrfs RAID1
- En el siguiente arranque, el sistema detectará los magic disks, los formateará y los usará como data filesystem
- El persistence subsystem se inicia desde
/etc/init.d/S11persistence -
Detección del sistema de archivos de datos
- Revisa todos los discos para encontrar una partición cuya etiqueta del sistema de archivos sea
lightwhale-data - Si la encuentra, la usa como data filesystem y salta a la etapa de montaje
- Revisa todos los discos para encontrar una partición cuya etiqueta del sistema de archivos sea
-
Detección de magic disks y creación de particiones
- Identifica un magic disk buscando la secuencia de bytes
lightwhale-please-format-meal inicio del disco - En cada magic disk crea una partición swap con etiqueta
lightwhale-swapy una partición Linux con etiquetalightwhale-dataque usa todo el espacio restante
- Identifica un magic disk buscando la secuencia de bytes
-
Creación del sistema de archivos
- Las particiones swap mágicas se formatean y reciben la etiqueta
lightwhale-swap - Si hay una sola partición de datos mágica, se formatea con
btrfs --data single --metadata dup - Si hay varias, se agrupan en RAID1 y se formatean con
btrfs --data raid1 --metadata raid1cn - Se crean los subvolúmenes
@lightwhale-data,@lightwhale-statey@lightwhale-state-snapshots
- Las particiones swap mágicas se formatean y reciben la etiqueta
-
Montaje y configuración de overlay
- Si existe un data filesystem, monta
@lightwhale-dataen/mnt/lightwhale-data; si no, montatmpfsen su lugar - La capa inferior inmutable hace un bind mount de
/etcen/run/lightwhale/overlay/lower/etcy prepara un espejo del árbol de directorios del sistema de archivos raíz - La capa superior escribible se prepara en rutas como
/mnt/lightwhale-data/lightwhale-state/overlay/upper/etc - Después combina ambas capas con
overlayfsy las monta en/etc, repitiendo el mismo método para/vary/home
- Si existe un data filesystem, monta
Restricciones y puntos clave del FAQ
- El hardware compatible es solo x86-64 y soporta tanto BIOS como EFI
- Raspberry Pi no está soportado actualmente y está en el backlog
- Apple M-series no está soportado en bare metal, pero sí puede ejecutarse virtualizado
- Puede ejecutarse en entornos virtuales como VMWare/ESX/Proxmox/cloud, e incluye agentes de invitado para QEMU/KVM y VMware ESXi
- El software solo puede instalarse como contenedores Docker; no es posible instalarlo directamente en el sistema de archivos raíz
- El sistema central es inmutable, pero la configuración, la personalización y los datos de contenedores se escriben por defecto en memoria y solo se conservan tras reiniciar cuando se activa la persistencia
- El hostname predeterminado incluye el machine ID para evitar conflictos de red; si lo cambias con
setup-hostname, se aplica de inmediato salvo en la shell actual - No hay garantías y el usuario asume la responsabilidad por los resultados de uso
- No busca agregar herramientas preferidas como
wgetonanoal sistema de archivos raíz, sino mantener la restricción de ser un OS de servidor mínimo y especializado en su propósito - En el TL;DR de la política de privacidad, no recopila datos personales y solo recolecta datos anónimos si aceptas la telemetría; además, puedes revisar exactamente qué se recopila
- El cumplimiento de regulaciones relacionadas con la edad no recae en el OS, sino en la responsabilidad de los servicios del usuario desplegados sobre él
1 comentarios
Comentarios en Hacker News
Hay que felicitar que realmente hayan lanzado algo, pero todavía no me queda claro por qué uno querría usar esto
Ya existen alternativas con objetivos parecidos, como Flatcar Container Linux, Fedora CoreOS, Talos Linux e IncusOS, y parecen tener comunidades o respaldo comercial más sólidos
Tendrían que explicar con más claridad qué lo hace diferente para que resulte convincente
Me cambié desde Proxmox y ahora administro todas mis VM ahí, y además uso bastante asistentes de código para automatizar la configuración del CLI de IncusOS, convertir imágenes de Docker-Compose a Incus y escribir scripts bash para levantar contenedores nuevos sin preocuparme de usar
--dangerously-skip-permissionsLo mejor es que se puede administrar con archivos declarativos, así que la configuración de red y de recursos siempre queda muy visible
Si buscas algo para un uso parecido, vale la pena echarle un vistazo a IncusOS
Mientras exista software, no se puede saltar el mantenimiento
Nada está libre de errores, y decir que no hacen falta upgrades, parches ni administración suele ser el camino más rápido a un sistema comprometido
Más bien reduce buena parte del mantenimiento que normalmente tendrías con un sistema base tradicional, porque 1) casi no tiene nada instalado y 2) actualizar la base es fácil: reinicias y vuelves a levantar los contenedores
Claro, el software que corre encima igual necesita upgrades, pero si está basado en Docker esa capa normalmente se administra por otro lado, así que basta con bajar el contenedor nuevo y reiniciarlo, y el OS más bien se encarga de asegurar que los datos queden montados en el mismo lugar
Si te parece bien correr todo en Docker, se ve como una opción un paso más allá de Debian o Redhat, y con menos complejidad procedimental que CoreOS
Qué tan cómodo sea de usar en la práctica todavía me deja dudas, sobre todo por el manejo de almacenamiento, pero al menos está muy claro qué es lo que quiere vender
El self-hosting es posible, pero en la práctica terminas cargando con un SLA incluso en tu tiempo libre fuera del horario laboral
Por eso hace mucho tiempo eliminé todo lo que tuviera más de 1 usuario
Aun así, hay una razón por la que existen proyectos como Talos
Si quitas la terminal, SSH, el gestor de paquetes, dejas el sistema de archivos en solo lectura, sacas systemd y minimizas la cantidad de ejecutables, la superficie de ataque claramente se reduce
No hablo específicamente del proyecto de aquí, pero sí existen sistemas que son más seguros y además requieren menos mantenimiento
Como nunca vas a poder ser 100% seguro, eso no significa que la respuesta sea aceptar a lo YOLO cualquier paquete npm modificado hace 3 minutos
Se ve interesante, pero me pregunto cómo manejan los parches, las actualizaciones y la construcción de su propio ISO
Incluso viendo el repositorio de código, esa parte casi no se muestra
El último commit fue hace 2 años y no parece estar el código fuente de la versión 3.0
¿Esto no es una distro de Linux en vez de un OS?
Siento que en este tema sigo siendo casi principiante, pero llevo más de 10 años con self-hosting y desde alrededor de 2019 me cambié a Unraid
Como está centrado en un portal web, era fácil de manejar y cómodo de mantener
Me da curiosidad cómo se interactúa con este OS para servidor casero
Como no veo imágenes en el sitio, me hace pensar que quizá todo se maneja desde terminal
Acabo de instalar Docker en Ubuntu Server con una sola línea y empecé a usarlo de inmediato, así que no me queda claro qué cambia aquí exactamente ni cuál es la propuesta de valor
También me da curiosidad a qué se refieren exactamente con mantenimiento, y si es un servidor más liviano pensado para correr en hardware menos potente
Apenas estoy empezando con un setup de servidor casero y quiero entender sinceramente qué ventajas tendría
Dicen que la ventaja del enfoque immutable está en las actualizaciones: si pasas a una versión nueva de la imagen y algo sale mal, simplemente puedes volver arrancando la versión anterior
Pero en funcionalidad, yo también siento que con Ubuntu Server es suficiente
Unas cuantas veces al año corro
apt updatey hago upgrades, y solo accedo de forma local o mediante TailscaleEste tipo de OS inmutable me parece más atractivo para una laptop o desktop que para un servidor casero
Como solo el directorio personal queda escribible, se espera que el OS sea más estable y más difícil de romper
Me gustaría saber cuál es la forma recomendada de hacer respaldos periódicos de los datos de contenedores que corren en Lightwhale
No lo entiendo
Si solo voy a correr Docker, no veo por qué necesitaría algo immutable, ni por qué haría falta una variante especial de Debian en vez de Debian o Ubuntu, donde puedes levantar Docker en pocos minutos
Además, el mantenimiento igual se puede manejar con el gestor de paquetes usando los repositorios de la distro o el repositorio oficial de Docker
Ojalá esta moda de lo immutable desaparezca un poco; lo mismo pienso de flatpak y snap
Linux ya hacía desde antes lo que estas soluciones dicen venir a resolver
Sin root, el usuario no puede tocar el sistema base, y las aplicaciones pueden instalar sus dependencias en
/usr/libY si algo se complica, poder encontrar ayuda fácilmente también es una gran garantía
Seguro se puede hacer más pequeño, pero si ya corre bien incluso en hardware raro como una BananaPi de bajos recursos o un RISC-V barato, cuesta ver por qué querría otra cosa
Esto parece que encajaría bastante bien en un clúster en modo Swarm
No sé si está enfocado solo en servidores caseros, pero pienso seguirle la pista
El proyecto se ve muy bueno
Pero Lightwhale ya está corriendo en producción y también encaja muy bien para clústeres Swarm
Se ve súper limpio
Desde la perspectiva de un principiante, justo hace falta este tipo de enfoque que evita que uno rompa la configuración, así que definitivamente quiero probarlo