不支持 Docker Desktop,需用 Docker Engine 并加入 docker 用户组;Podman 在 Debian/Ubuntu 上 apt 版本可能过旧,需 4.x 以上;FreeRDP 需 3.x 且带声音支持,Podman 下 USB 直通暂不支持。
winboat
winboat-orgMIT活跃维护在 Linux 上通过 Docker 和 RDP 运行 Windows 应用,实现接近原生的无缝集成,省去双系统或复杂虚拟机的麻烦。
Run Windows apps on 🐧 Linux with ✨ seamless integration
下载 Releases 中的 AppImage/.deb/.rpm 直接运行;从源码构建:git clone https://github.com/TibixDev/WinBoat && bun i && bun run build:linux-gs至少 4 GB 内存、2 个 CPU 线程、32 GB 可用磁盘空间,需在 BIOS/UEFI 中开启 KVM 虚拟化;README 未说明显卡或显存要求。
在 Linux 上以容器化虚拟机方式运行 Windows 应用,并把它们当作原生窗口使用
在 Linux 上通过 Docker 和 RDP 运行 Windows 应用,实现接近原生的无缝集成,省去双系统或复杂虚拟机的麻烦。
核心能力
- 用 Docker/Podman 容器跑 Windows 虚拟机
- 通过 FreeRDP 与 RemoteApp 把应用合成原生窗口
- 提供完整 Windows 桌面与单应用两种模式
- 把 Linux 家目录挂载进 Windows 共享文件
- 界面内自动化完成 Windows 安装与配置
容易踩的坑
- v0.9.2最新正式版2026-08-25 · 2026-08-25 17:37 UTC
🎉 Release v0.9.2
This is the final release of WinBoat 0.9, it only contains security patches and other minor fixes. Stay tuned for 1.0, we're excited to ship GPU acceleration and other cool things.
🛡️ Security:
- Fixed a flaw that allowed attackers to execute arbitrary PS1 commands inside the VM by calling get-icon with specific parameters
- Restricted icon lookup paths to prevent remote UNC access and reject control characters
- Prevent Slowloris-like attacks by restricting header read timeout
- Passwords are no longer logged in compose and FreeRDP logs (backported)
(Thank you to @AndreaBonn for reaching out about the vulnerability, fixed within 4 hours after initial contact)
🛠️ Minor Changes:
- Bumped Electron to 44
- Bumped dockur/windows to 6.05
- The profile picture is now a local file (backported)
- v0.9.12026-08-25 · 2026-08-25 16:23 UTC
查看更新说明
🎉 Release v0.9.1
This is the final release of WinBoat 0.9, it only contains security patches and other minor fixes. Stay tuned for 1.0, we're excited to ship GPU acceleration and other cool things.
🛡️ Security:
- Fixed a flaw that allowed attackers to execute arbitrary PS1 commands inside the VM by calling get-icon with specific parameters
- Restricted icon lookup paths to prevent remote UNC access and reject control characters
- Prevent Slowloris-like attacks by restricting header read timeout
- Passwords are no longer logged in compose and FreeRDP logs (backported)
(Thank you to @AndreaBonn for reaching out about the vulnerability, fixed within 4 hours after initial contact)
🛠️ Minor Changes:
- Bumped Electron to 44
- The profile picture is now a local file (backported)
- v0.9.02025-11-23 · 2025-11-23 23:23 UTC
查看更新说明
🎉 Release v0.9.0
:sparkles: Features:
- 🐳 Podman is now supported, you can pick it during installation, however USB passthrough on Podman is not supported yet
- UWP app support has been added, now you can see and start all your UWP apps
- A Custom App can now be created from an existing one if you'd like to modify it
- Apps can now be filtered
- Apps can now be launched via the context menu
- You can now adjust the Application Scaling in Configuration
- New WinBoat installations will now reserve the port range
47270 - 47370on Docker for all used services, this is to avoid common ports and port conflicts in the future. In the meantime Podman does not support port ranges in compose files, so we're allocating random ports - You can now add new or replace any existing FreeRDP arguments in Configuration
- A
wm-classprefix has been added for folks who wanna style WinBoat FreeRDP windows in their WM - Windows will now auto-synchronize the clock on new installations
- The default install path has been set to
~/winboat, of course you can still change it to whatever you prefer - You can now disable animations within WinBoat if you're sensitive to motion or your compositor doesn't play nicely with Electron
:construction: Fixes:
- If you're using a Custom ISO for installation, that ISO will get auto-unmounted afterwards so the next time you start WinBoat with that ISO deleted, it will work properly
- Fixed the CPU usage spiking when RDP monitoring is enabled
- Corrected a few typos
:jigsaw: Misc:
dockur/windowsversion upgraded to 5.14- All WinBoat ports are now bound by default to
127.0.0.1 - Improved the security of the Guest Server (thanks @mrsheepsheep and @matt0x00)
Full Changelog: https://github.com/TibixDev/winboat/compare/v0.8.7...v0.9.0
- v0.9.0-alpha2pre-release2025-11-14 · 2025-11-14 00:52 UTC
查看更新说明
:construction: Fixes:
- WinBoat now detects podman-compose installations as expected
Full Changelog: https://github.com/TibixDev/winboat/compare/v0.9.0-alpha...v0.9.0-alpha2
- v0.9.0-alphapre-release2025-11-13 · 2025-11-13 23:01 UTC
查看更新说明
🧪 Alpha Release v0.9.0 (Help us test!)
:sparkles: Features:
- Podman is now supported, you can pick it during installation, however USB passthrough on Podman is not supported yet
- UWP app support has been added, now you can see and start all your UWP apps
- A Custom App can now be created from an existing one if you'd like to modify it
- Apps can now be filtered
- Apps can now be launched via the context menu
- You can now adjust the Application Scaling in Configuration
- New WinBoat installations will now reserve the port range
47270 - 47370on Docker for all used services, this is to avoid common ports and port conflicts in the future. In the meantime Podman does not support port ranges in compose files, so we're allocating random ports - You can now add new or replace any existing FreeRDP arguments in Configuration
- A
wm-classprefix has been added for folks who wanna style WinBoat FreeRDP windows in their WM - Windows will now auto-synchronize the clock on new installations
- The default install path has been set to
~/winboat, of course you can still change it to whatever you prefer - You can now disable animations within WinBoat if you're sensitive to motion or your compositor doesn't play nicely with Electron
:construction: Fixes:
- If you're using a Custom ISO for installation, that ISO will get auto-unmounted afterwards so the next time you start WinBoat with that ISO deleted, it will work properly
- Fixed the CPU usage spiking when RDP monitoring is enabled
- Corrected a few typos
:jigsaw: Misc:
dockur/windowsversion upgraded to 5.13- All WinBoat ports are now bound by default to
127.0.0.1 - Improved the security of the Guest Server (thanks @mrsheepsheep and @matt0x00)
- Much of the codebase has changed to accomodate all these new features and fixes, as well as to improve consistency, so this release remains as an alpha until we can be sure that everything is working as expected
New Contributors
- @dxrkinfuser44 made their first contribution in https://github.com/TibixDev/winboat/pull/238
- @VertigoFromOuterSpace made their first contribution in https://github.com/TibixDev/winboat/pull/290
- @devin-slothower made their first contribution in https://github.com/TibixDev/winboat/pull/283
- @biswashpoudel made their first contribution in https://github.com/TibixDev/winboat/pull/318
- @waffles-dev made their first contribution in https://github.com/TibixDev/winboat/pull/332
- @ethan-hawksley made their first contribution in https://github.com/TibixDev/winboat/pull/253
- @adeel26in made their first contribution in https://github.com/TibixDev/winboat/pull/369
- @KillerBOSS2019 made their first contribution in https://github.com/TibixDev/winboat/pull/373
- @Kuritsu243 made their first contribution in https://github.com/TibixDev/winboat/pull/387
- @enXov made their first contribution in https://github.com/TibixDev/winboat/pull/406
- @auri-f5bde6 made their first contribution in https://github.com/TibixDev/winboat/pull/413
Full Changelog: https://github.com/TibixDev/winboat/compare/v0.8.7...v0.9.0-alpha
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Screenshots
⚠️ Work in Progress ⚠️
WinBoat is currently in beta, so expect to occasionally run into hiccups and bugs. You should be comfortable with some level of troubleshooting if you decide to try it, however we encourage you to give it a shot anyway.
Features
- 🎨 Elegant Interface: Sleek and intuitive interface that seamlessly integrates Windows into your Linux desktop environment, making it feel like a native experience
- 📦 Automated Installs: Simple installation process through our interface - pick your preferences & specs and let us handle the rest
- 🚀 Run Any App: If it runs on Windows, it can run on WinBoat. Enjoy the full range of Windows applications as native OS-level windows in your Linux environment
- 🖥️ Full Windows Desktop: Access the complete Windows desktop experience when you need it, or run individual apps seamlessly integrated into your Linux workflow
- 📁 Filesystem Integration: Your home directory is mounted in Windows, allowing easy file sharing between the two systems without any hassle
- ✨ And many more: Smartcard passthrough, resource monitoring, and more features being added regularly
How Does It Work?
WinBoat is an Electron app which allows you to run Windows apps on Linux using a containerized approach. Windows runs as a VM inside a Docker/Podman container, we communicate with it using the WinBoat Guest Server to retrieve data we need from Windows. For compositing applications as native OS-level windows, we use FreeRDP together with Windows's RemoteApp protocol.
Prerequisites
Before running WinBoat, ensure your system meets the following requirements:
- RAM: At least 4 GB of RAM
- CPU: At least 2 CPU threads
- Storage: At least 32 GB free space on the drive your selected install folder corresponds to
- Virtualization: KVM enabled in BIOS/UEFI
- In case of Docker:
- Docker: Required for containerization
- Installation Guide
- ⚠️ NOTE: Docker Desktop is not supported, you will run into issues if you use it
- Docker Compose v2: Required for compatibility with docker-compose.yml files
- Docker User Group: Add your user to the
dockergroup
- Docker: Required for containerization
- In case of Podman:
- Podman: Required for containerization
- Installation Guide
- On Debian/Ubuntu and forks, the Podman version installed with
apt installcould be too old. Make sure you have Version 4.x.x or higher to ensure the installation completes successfully.
- Podman Compose: Required for compatibility with podman-compose.yml files
- Podman: Required for containerization
- FreeRDP: Required for remote desktop connection (Please make sure you have Version 3.x.x with sound support included)
- [OPTIONAL] Kernel Modules: The
iptables/nftableskernel modules can be loaded for better network performance, but this is not obligatory in newer versions of WinBoat
Downloading
You can download the latest Linux builds under the Releases tab. We currently offer four variants:
- AppImage: A popular & portable app format which should run fine on most distributions
- Unpacked: The raw unpacked files, simply run the executable (
linux-unpacked/winboat) - .deb: The intended format for Debian based distributions
- .rpm: The intended format for Fedora based distributions
- Nix (Nixpkgs)
- Add the winboat package to your config (ensure using nixpkgs-unstable)
using
environment.systemPackages = [pkgs.winboat];orhome.packages = [pkgs.winboat];if using home manager. - Add the following lines to your nix configuration
virtualisation.docker.enable = true; users.users.{yourUser}.extraGroups = ["docker"]; - Add the winboat package to your config (ensure using nixpkgs-unstable)
using
Known Issues About Container Runtimes
- Docker Desktop is unsupported for now
- USB passthrough via Podman is currently unsupported
Building WinBoat
- For building you need to have Bun and Go installed on your system
- Clone the repo (
git clone https://github.com/TibixDev/WinBoat) - Install the dependencies (
bun i) - Build the app and the guest server using
bun run build:linux-gs - You can now find the built app under
distwith an AppImage and an Unpacked variant
Running WinBoat in development mode
- Make sure you meet the prerequisites
- Additionally, for development you need to have Bun and Go installed on your system
- Clone the repo (
git clone https://github.com/TibixDev/WinBoat) - Install the dependencies (
bun i) - Build the guest server (
bun run build:gs) - Run the app (
bun run dev)
Contributing
Contributions are welcome! Whether it's bug fixes, feature improvements, or documentation updates, we appreciate your help making WinBoat better.
Please note: We maintain a focus on technical contributions only. Pull requests containing political/sexual content, or other sensitive/controversial topics will not be accepted. Let's keep things focused on making great software! 🚀
Feel free to:
- Report bugs and issues
- Submit feature requests
- Contribute code improvements
- Help with documentation
- Share feedback and suggestions
Check out our issues page to get started, or feel free to open a new issue if you've found something that needs attention.
License
WinBoat is licensed under the MIT license
Inspiration / Alternatives
These past few years some cool projects have surfaced with similar concepts, some of which we've also taken inspirations from.
They're awesome and you should check them out:
- WinApps
- Cassowary
- dockur/windows (🌟 Also used in WinBoat)