
If you work on Linux and occasionally need to run an application that only exists for Windows, it's easy to feel stuck between a rock and a hard place. WinBoat emerges as a distinct option: Instead of a compatibility layer, it runs a real instance of Windows and seamlessly integrates it into your desktop.
The idea is as simple as it is powerful: Build a real Windows with Docker and KVM, and display its windows within your Linux session using FreeRDP, just as if they were native. No more fumbling with weird dependencies or unpredictable patches; when a program works on Windows, it should work here too, with the exception of scenarios that require strong graphics acceleration or kernel-level anti-cheat measures.
What is WinBoat and why is it interesting?
WinBoat is a project that, as its Windows for Penguins spirit says, seeks to Windows apps coexist on your Linux with the least amount of friction possible. Instead of API translations, it relies on virtualization with KVM and Docker containers to encapsulate a Windows environment that then presents itself as independent windows in your environment.
Compared to previous approaches such as Win AppsThe key difference is in the experience. With WinApps, the bulk of the configuration is up to you: a lot of manual assembly, a basic TUI, a few widgets in the taskbar, and a few console commands scattered about. WinBoat, on the other hand, does the heavy lifting after meeting a few prerequisites, displays the relevant information in a neat interface, and offers a more complete experience without having to struggle with configuration files or memorize a string of commands.
If you're wondering why not use WINE or CrossOver, the answer lies in the borderline cases. There are applications that They don't go smoothly or they don't start with WINE at all.That's precisely why WinBoat was born: to fill those gaps and also give you a full Windows desktop when you need it. Real-world tests have cited examples such as Affinity Photo, Paint Tool SAI v1.0, the Adobe suite, AeroChat, Acrobat, and, of course, Office; even Office 365 has been confirmed to work.
How WinBoat Works: Virtualization with Window Integration
Under the hood, WinBoat stands up a Windows machine using Docker as the orchestrator and KVM as the deployment technology. hardware assisted virtualizationWindows are rendered on Linux via FreeRDP, so you can use them like any other system app, dragging them between desktops, pinning them to your taskbar, and switching between them with Alt+Tab.
The beauty of the invention is that the user perceives a continuous flow: elegant interface, automated installation processes, and the option to invoke the full Windows desktop if the task requires it. When not, you can open only specific applications and integrate them as if they were native, with a consistent look and feel throughout your session.
Outstanding Features
- Neat interface with visual integration that makes Windows windows look like they are from Linux itself.
- Automated installation: You choose your preferences and resources, and the system takes care of the cooking.
- Run almost any app that runs on Windows, presented as system-level windows on your desktop.
- Full desktop Windows available when you need it, as well as launching individual apps in an integrated way.
- File integration: Mounts your home directory in Windows to share documents directly.
- useful extras On the way and already present: smartcard passthrough, resource monitoring and more.
System Prerequisites
Before you get started, make sure your equipment meets these minimum requirements; otherwise, you'll run into errors from the very beginning. Check each point calmly and avoid scares.
- RAM: at least 4 GB.
- CPU: minimum 2 threads.
- Storage: 32 GB free in /var.
- Virtualization: KVM enabled in BIOS or UEFI.
- Docker: required for containerization.
- Docker Compose v2: essential for compatibility with docker-compose.yml files.
- Docker group: add your user to the docker group.
- Free RDP: Version 3.xx with sound support.
- Kernel modules: loads iptables and iptable_nat.
In addition to the software requirements, you'll want to confirm that KVM is actually working on your distribution. A disabled KVM in the BIOS or blocked by the kernel will cause nothing to boot, no matter how good everything else is.
Download and installation: available variants
You can download Linux builds from the project's releases section. There are currently two versions that cover most cases, with a fairly easy onboarding curve. Choose the one that best suits your distro and your way of working.
- AppImage: portable format that works on most distributions without complex installation.
- Unpacked: unpacked files; just run the binary in linux-unpacked/winboat.
Beware of incompatibilities reported by the developers. There is no support for Podman at this time., neither for Docker Desktop, nor for distros that emulate Docker using a Podman socket, nor for rootless container configurations. If you depend on any of these environments, you'll have to wait for future releases.
The biggest recognized drawback is that you will have to install various extras manually Before you can enjoy the full experience: Docker, Compose v2, FreeRDP 3 with audio, iptables modules, and membership in the Docker group. Once you're done with that, the rest is pretty much taken care of.
Compile and run from source code
If you prefer to build the application on your machine, the process is straightforward as long as you have the necessary dependencies. You will need NodeJS and Go installed before starting.
- Clone the repository:
git clone https://github.com/TibixDev/WinBoat - Install dependencies:
npm i - Compile the app and the guest server:
npm run build:linux-gs - The resulting binaries appear in
dist, with AppImage and Unpacked variant
For development, the flow changes slightly so you can iterate locally more comfortably. With NodeJS and Go ready, follow these steps.
- Clone the repository:
git clone https://github.com/TibixDev/WinBoat - Install dependencies:
npm i - Build the guest server:
npm run build-guest-server - Launch the app in development mode:
npm run dev
Devices and hardware configuration
If you need to modify hardware from Windows, support varies depending on the device type. There are already options for USB, although currently the setting is manual. When the USB passthrough arrives in the app, this can be done from the interface; in the meantime, it's time to edit a file.
Once WinBoat is installed, go to the folder ~/.winboat and open the file docker-compose.ymlThere you can add any USB devices you want to show to the guest. After modifying it, apply the changes with docker-compose down y docker-compose up -d in that same directory.
Graphics and Acceleration: Current Status of WinBoat
There is no GPU passthrough in operation today. The plans are to implement acceleration through paravirtualized drivers, but there's still work to be done. MVisor Win VGPU Driver for OpenGL has been investigated, and the results are promising, although it's designed for a different hypervisor and isn't compatible with QEMU, which WinBoat uses.
There are also teams working on DirectX drivers, but at the moment there is nothing we can test with certainty. The goal is to integrate these pieces when they are mature enough for general use, without compromising stability.
One project that has been closely scrutinized is Looking Glass, especially its Indirect Display Driver, because it would make it possible to avoid using a second GPU. The driver has been successfully compiled and started. With some tweaking, the result is only a black screen. The author himself indicates that it's not ready for the public, so integration will have to wait for it to mature.
Games with anti-cheat and other WinBoat limits
If your target is games with kernel-level anti-cheat, there is no good news. These systems detect and block virtualization., so it's not possible to run them in WinBoat. For games without these restrictions or with less intrusive protections, the story may be different, but that's not the project's primary focus.
Podman status and packaging in Flatpak
Podman support is planned, and has even been worked on, by both the team and collaborators. However, there are Network issues preventing the guest server from being accessible, which breaks the experience. Until they're resolved, it'll remain on the to-do list.
Converting WinBoat to Flatpak is also on the roadmap, although it will take effort because Flatpak isolates apps greatly from the system. Installed applications should be exposed, the Docker binary, its socket, and other utilities, all without compromising the sandbox's security. It's not trivial, but it's not out of the question.
File integration and workflow
A practical detail that makes life easier is that your home directory in Linux is mounted inside Windows. This allows file sharing. from one place to another without setting up additional resources or manually copying from exotic locations. For office, editing, or CAD tasks, it's a much-appreciated shortcut.
Apps that work well and use cases
The real value of WinBoat comes when you have to use programs that Wine doesn't yet cover. Examples such as Affinity Photo have been highlightedPaint Tool SAI v1.0, and parts of the Adobe suite, as well as tools like AeroChat and Acrobat. Office stands out, and it's confirmed that Office 365 can be used without further ado.
This approach works well for professionals who need a few critical Windows utilities, but prefer to keep their Linux environment for everything else. Design, advanced office automation or certain corporate apps fit especially well into this mixed use.
Collaborate with the WinBoat project and license
Contributions are open and always welcome, whether it's to fix bugs, polish features, or improve the documentation. The team asks to focus on technical contributions and discard pull requests with political, sexual, or sensitive content that don't contribute to development. If you'd like to help, the best thing to do is to check out the issues section, propose improvements, and open limited PRs.
In addition to reporting bugs and suggesting features, you can share real-world usage feedback or help clarify points in the manual. The project is under MIT license, which facilitates collaboration and adoption in different scenarios. They also mention that there are other projects with similar ideas that they've drawn inspiration from; it's worth checking them out.
Privacy Notes, Notices, and Source Context
Some of the information you access comes from threads on platforms that display privacy notices. In Reddit's case, you'll see the typical message indicating that they and their partners use cookies and similar technologies to provide a better experience, maintain services, improve quality and personalize content and advertising, in addition to measuring advertising effectiveness. If you accept all cookies, continue; if you reject non-essential cookies, they may use certain cookies necessary for the platform to function. They also refer to their cookie notice and privacy policy.
In some X embeds, if your browser has JavaScript disabled, a prompt appears asking you to enable it or use a supported browser to continue. Links to the help center are listed and terms of service, privacy policy, cookie policy, imprint and ad data, with the corporate signature of X. These are standard platform messages and do not affect the operation of WinBoat.
Finally, some articles feature layouts with empty tables and placeholders that add no content. Those visual elements They are part of the original design and do not contain relevant technical information about WinBoat.
Practical tips for a test with a good face
Although the project automates a lot, it's helpful to set the stage. Make sure your user is in the Docker group and that you can run containers without sudo. Confirm that FreeRDP is version 3.xx with sound, because older versions may cause audio issues. And check /var availability so you don't run out of space mid-deployment.
If you plan to use specific USB peripherals within Windows, have their identifiers handy and document any changes you make to docker-compose.yml. A short checklist before raising and lowering containers can save you time, especially if you alternate teams or share the project with more people.
WinBoat offers A pragmatic path for those who need a Windows handy without abandoning Linux: Well-orchestrated virtualization, integrated Windows with FreeRDP, clear requirements, and a roadmap that aims to improve graphics acceleration, Podman support, and Flatpak packaging. With a beta version that already allows serious work, it's a compelling alternative when Wine or Proton aren't enough, especially for those essential design, office, or business workflow programs that still struggle on Linux.