WinBoat, la herramienta que integra y ejecuta aplicaciones de Windows en Linux de la mejor manera posible
Si trabajas en Linux y de vez en cuando necesitas ejecutar una aplicación que solo existe para Windows, es fácil sentirse entre la espada y la pared. WinBoat irrumpe como una opción distinta: en lugar de una capa de compatibilidad, ejecuta una instancia real de Windows y la integra de forma fluida en tu escritorio.
La idea es tan simple como potente: montar un Windows real con Docker y KVM, y mostrar sus ventanas dentro de tu sesión de Linux mediante FreeRDP, como si fuesen nativas. Nada de peleas con dependencias raras ni parches imprevisibles; cuando un programa funciona en Windows, aquí también debería hacerlo, con la salvedad de escenarios que exigen aceleración gráfica fuerte o medidas anti trampas a nivel del kernel.
Qué es WinBoat y por qué interesa
WinBoat es un proyecto que, como reza su espíritu de Windows for Penguins, busca que las apps de Windows convivan en tu Linux con la menor fricción posible. En vez de traducciones de APIs, se apoya en virtualización con KVM y contenedores Docker para encapsular un Windows que, después, se presenta como ventanas independientes en tu entorno.
Frente a enfoques anteriores como WinApps, la diferencia clave está en la experiencia. Con WinApps, el grueso de la configuración recae sobre ti: mucho montaje manual, una TUI básica, algún widget en la barra de tareas y ciertos comandos de consola repartidos. WinBoat, en cambio, hace el trabajo pesado tras cumplir unos prerrequisitos, muestra lo relevante en una interfaz cuidada y ofrece una vivencia más completa sin pelearte con archivos de configuración ni memorizar una ristra de comandos.
Si te preguntas por qué no tirar de WINE o CrossOver, la respuesta está en los casos límite. Hay aplicaciones que no van finas o directamente no arrancan con WINE. Precisamente por eso nació WinBoat: para cubrir esos huecos y, además, darte un escritorio de Windows completo cuando lo necesites. En pruebas reales se han citado ejemplos como Affinity Photo, Paint Tool SAI v1.0, la suite de Adobe, AeroChat, Acrobat y, por supuesto, Office; incluso se confirma que Office 365 funciona.
Cómo funciona WinBoat: virtualización con integración de ventanas
Bajo el capó, WinBoat levanta una máquina con Windows empleando Docker como orquestador y KVM como tecnología de virtualización asistida por hardware. Las ventanas se renderizan en Linux a través de FreeRDP, de modo que puedes usarlas como cualquier otra app del sistema, arrastrarlas entre escritorios, anclarlas en tu barra y alternarlas con Alt+Tab.
La gracia del invento es que el usuario percibe un flujo continuo: interfaz elegante, procesos de instalación automatizados y la opción de invocar el escritorio completo de Windows si la tarea lo requiere. Cuando no, puedes abrir solo las aplicaciones concretas e integrarlas como si fuesen nativas, con un aspecto y comportamiento coherentes en tu sesión.
Características destacadas
- Interfaz cuidada con integración visual que hace que las ventanas de Windows parezcan del propio Linux.
- Instalación automatizada: eliges preferencias y recursos, y el sistema se encarga de la cocina.
- Ejecuta casi cualquier app que corra en Windows, presentada como ventanas a nivel de sistema en tu escritorio.
- Escritorio completo de Windows disponible cuando lo necesites, además de lanzar apps individuales de forma integrada.
- Integración de archivos: se monta tu directorio home en Windows para compartir documentos de forma directa.
- Extras útiles en camino y ya presentes: passthrough de smartcards, monitorización de recursos y más.
Requisitos previos del sistema
Antes de echar a andar, asegúrate de que tu equipo cumple estas condiciones mínimas; de lo contrario, te toparás con errores desde el minuto cero. Comprueba cada punto con calma y evita sustos.
- RAM: al menos 4 GB.
- CPU: mínimo 2 hilos.
- Almacenamiento: 32 GB libres en /var.
- Virtualización: KVM activado en BIOS o UEFI.
- Docker: necesario para la contenedorización.
- Docker Compose v2: imprescindible por compatibilidad con archivos docker-compose.yml.
- Grupo docker: añade tu usuario al grupo docker.
- FreeRDP: versión 3.x.x con soporte de sonido.
- Módulos del kernel: carga iptables e iptable_nat.
Además de los requisitos de software, conviene que confirmes que KVM está funcionando de verdad en tu distribución. Un KVM deshabilitado en la BIOS o bloqueado por el kernel hará que nada arranque, por muy bien que esté el resto.
Descarga e instalación: variantes disponibles
Puedes descargar compilaciones para Linux desde el apartado de lanzamientos del proyecto. Actualmente hay dos modalidades que cubren la mayoría de casos, con una curva de entrada bastante amable. Escoge la que mejor encaje con tu distro y tu forma de trabajar.
- AppImage: formato portable que funciona en la mayoría de distribuciones sin instalación compleja.
- Unpacked: archivos sin empaquetar; basta con ejecutar el binario en linux-unpacked/winboat.
Ojo a las incompatibilidades señaladas por los desarrolladores. Por ahora no hay soporte para Podman, ni para Docker Desktop, ni para distros que emulan Docker mediante un socket de Podman, ni para configuraciones rootless de contenedores. Si dependes de alguno de esos entornos, toca esperar a futuras versiones.
La mayor pega reconocida es que tendrás que instalar varios extras de forma manual antes de disfrutar de la experiencia completa: Docker, Compose v2, FreeRDP 3 con audio, módulos iptables y pertenencia al grupo docker. Una vez superado ese trámite, el resto está bastante orquestado.
Compilar y ejecutar desde código fuente
Si prefieres construir la aplicación en tu máquina, el proceso es directo siempre que tengas las dependencias necesarias. Necesitarás NodeJS y Go instalados antes de empezar.
- Clona el repositorio:
git clone https://github.com/TibixDev/WinBoat
- Instala dependencias:
npm i
- Compila la app y el guest server:
npm run build:linux-gs
- Los binarios resultantes aparecen en
dist
, con variante AppImage y Unpacked
Para desarrollo, el flujo cambia ligeramente para que puedas iterar en local con mayor comodidad. Con NodeJS y Go listos, sigue estos pasos.
- Clona el repositorio:
git clone https://github.com/TibixDev/WinBoat
- Instala dependencias:
npm i
- Construye el guest server:
npm run build-guest-server
- Lanza la app en modo desarrollo:
npm run dev
Dispositivos y configuración de hardware
Si necesitas tocar hardware desde Windows, el soporte varía según el tipo de dispositivo. Para USB ya hay opciones, aunque hoy por hoy el ajuste es manual. Cuando llegue el passthrough USB en la app, se podrá hacer desde la interfaz; mientras tanto, toca editar un archivo.
Una vez instalado WinBoat, ve a la carpeta ~/.winboat
y abre el archivo docker-compose.yml
. Ahí puedes añadir los dispositivos USB que quieras exponer al invitado. Después de modificarlo, aplica los cambios con docker-compose down
y docker-compose up -d
en ese mismo directorio.
Gráficos y aceleración: situación actual de WinBoat
Hoy no hay passthrough de GPU operativo. Los planes pasan por implementar aceleración mediante drivers paravirtualizados, pero queda trabajo por delante. Se ha investigado MVisor Win VGPU Driver para OpenGL y los resultados son prometedores, aunque está pensado para otro hipervisor y no es compatible con QEMU, que es el que usa WinBoat.
También hay equipos trabajando en drivers de DirectX, pero de momento no hay nada que podamos probar con garantías. El objetivo es integrar estas piezas cuando maduren lo suficiente para un uso general, sin comprometer estabilidad.
Un proyecto que se ha mirado con lupa es Looking Glass, especialmente su Indirect Display Driver, porque permitiría evitar usar una segunda GPU. Se ha logrado compilar y arrancar el driver con algunos apaños, pero solo se obtiene pantalla en negro. El propio autor indica que no está listo para el público, por lo que la integración tendrá que esperar a que madure.
Juegos con anti trampas y otros límites de WinBoat
Si tu objetivo son juegos con anti cheat a nivel de kernel, no hay buenas noticias. Esos sistemas detectan y bloquean la virtualización, por lo que no es posible ejecutarlos en WinBoat. Para juegos sin esas restricciones o con protecciones menos intrusivas, la historia puede ser diferente, pero no es el foco prioritario del proyecto.
Estado de Podman y empaquetado en Flatpak
El soporte de Podman está previsto, e incluso se ha trabajado en él, tanto por el equipo como por colaboradores. Sin embargo, hay problemas de red que impiden que el servidor invitado sea accesible, lo cual rompe la experiencia. Hasta que no se resuelvan, seguirá en la lista de pendientes.
Convertir WinBoat en Flatpak también está en la hoja de ruta, aunque costará esfuerzo porque Flatpak aísla mucho las apps del sistema. Habría que exponer aplicaciones instaladas, el binario de Docker, su socket y otras utilidades, todo ello sin comprometer la seguridad del sandbox. No es trivial, pero no está descartado.
Integración de archivos y flujo de trabajo
Un detalle práctico que facilita la vida es que tu directorio home en Linux se monta dentro de Windows. Eso permite compartir ficheros de un lado a otro sin montar recursos adicionales ni copiar a mano desde ubicaciones exóticas. Para tareas de oficina, edición o CAD, es un atajo que se agradece mucho.
Aplicaciones que funcionan bien y casos de uso
El valor real de WinBoat se ve cuando toca usar programas que Wine todavía no borda. Se han destacado ejemplos como Affinity Photo, Paint Tool SAI v1.0 y piezas de la suite de Adobe, además de herramientas como AeroChat y Acrobat. El caso de Office sobresale, y se confirma que Office 365 se puede usar sin mayor historia.
Este enfoque va muy bien para profesionales que necesitan un par de utilidades críticas de Windows, pero prefieren mantener su entorno Linux para todo lo demás. Diseño, ofimática avanzada o ciertas apps corporativas encajan especialmente bien en este uso mixto.
Colaborar con el proyecto y licencia de WinBoat
Las contribuciones están abiertas y siempre son bienvenidas, ya sea para corregir bugs, pulir funciones o mejorar la documentación. El equipo pide centrarse en aportes técnicos y descarta pull requests con contenido político, sexual o temas sensibles que no aportan al desarrollo. Si te apetece ayudar, lo ideal es pasar por la sección de issues, proponer mejoras y abrir PRs acotadas.
Además de reportar fallos y sugerir características, puedes compartir feedback de uso real o ayudar a aclarar puntos del manual. El proyecto está bajo licencia MIT, lo que facilita la colaboración y su adopción en distintos escenarios. También mencionan que hay otros proyectos con ideas parecidas de los que han tomado inspiración; merece la pena echarles un ojo.
Notas sobre privacidad, avisos y contexto de las fuentes
Parte de la información consultada procede de hilos en plataformas que muestran avisos de privacidad. En el caso de Reddit, verás el típico mensaje que indica que ellos y sus socios usan cookies y tecnologías similares para ofrecer una mejor experiencia, mantener servicios, mejorar la calidad y personalizar contenido y publicidad, además de medir eficacia publicitaria. Si aceptas todas las cookies, sigues adelante; si rechazas las no esenciales, pueden usar ciertas cookies necesarias para que la plataforma funcione. También remiten a su aviso de cookies y a la política de privacidad.
En algunos embeds de X, si tu navegador tiene JavaScript desactivado aparece un aviso pidiendo activarlo o usar un navegador compatible para continuar. Se listan enlaces al centro de ayuda y a términos del servicio, política de privacidad, política de cookies, imprint y datos de anuncios, con la firma corporativa de X. Son mensajes estándar de la plataforma y no afectan al funcionamiento de WinBoat.
Por último, en ciertos artículos aparece maquetación con tablas vacías y marcadores de posición que no añaden contenido. Esos elementos visuales forman parte del diseño original y no contienen información técnica relevante sobre WinBoat.
Consejos prácticos para una prueba con buena cara
Aunque el proyecto automatiza mucho, se agradece preparar el terreno. Verifica que tu usuario está en el grupo docker y que puedes ejecutar contenedores sin sudo. Confirma que FreeRDP es la versión 3.x.x con sonido, porque versiones anteriores pueden dar fallos con el audio. Y revisa disponibilidad de /var para no quedarte sin espacio a mitad del despliegue.
Si planeas usar periféricos USB específicos dentro de Windows, ten a mano sus identificadores y deja documentados los cambios que realices en docker-compose.yml. Un pequeño checklist antes de subir y bajar contenedores te puede ahorrar tiempo, sobre todo si alternas equipos o compartes el proyecto con más personas.
WinBoat propone una vía pragmática para quienes necesitan un Windows a mano sin abandonar Linux: virtualización bien orquestada, ventanas integradas con FreeRDP, requisitos claros y una hoja de ruta que apunta a mejorar aceleración gráfica, soporte de Podman y empaquetado Flatpak. Con una beta que ya permite trabajar en serio, resulta una alternativa convincente cuando Wine o Proton no alcanzan, especialmente para esos programas imprescindibles de diseño, ofimática o flujo corporativo que aún se resisten en Linux.