Blog

WinBoat ou Wine : lancer des applications Windows sur un serveur Linux GPU

WinBoat (Windows 11 dans un conteneur Docker) installé sur un serveur Linux sans écran avec une Intel UHD 770 : 16 minutes d'installation, 4 Go de RAM réservés, pas de GPU dans Windows. Comparaison avec Wine, Proton et un serveur Windows 11 complet.

WinBoat ou Wine : lancer des applications Windows sur un serveur Linux GPU

Il y a deux façons de faire tourner un programme Windows sous Linux. Wine (et Proton, sa version par Valve) traduit les appels Windows vers Linux : pas de Windows à l’intérieur, et le programme utilise les pilotes GPU de Linux. WinBoat fait l’inverse : il lance un vrai Windows 11 dans un conteneur Docker (le projet dockur/windows, avec QEMU/KVM) et affiche chaque application Windows comme une fenêtre Linux grâce au mode RemoteApp de FreeRDP. Nous avons testé WinBoat sur un serveur Linux GPU sans écran et l’avons comparé à Wine.

Le Windows 11 installé par WinBoat sur le serveur Linux, ouvert en bureau complet par RDP : Windows liste ses cartes graphiques, et aucune n'est le GPU Intel (5 secondes).

Les résultats en bref

  • WinBoat fonctionne sur un serveur sans écran : son interface est une application Electron que nous avons pilotée sur un écran virtuel. Il a trouvé Docker, KVM et FreeRDP et installé Windows 11 Pro tout seul.
  • 16 minutes d’installation : 1 min 30 pour télécharger Windows 11 chez Microsoft (8,5 Go), 14 minutes d’installation automatique. Ensuite, 19 Go occupés sur le disque du serveur.
  • 4,2 Go de RAM réservés tant que Windows tourne, environ 0,4 vCPU quand Windows est au repos.
  • Pas de GPU dans Windows : Windows ne voit qu’un « Red Hat VirtIO GPU DOD controller » et le « Microsoft Remote Display Adapter », sans accélération 3D. WinBoat 0.9.2 ne transmet pas le GPU.
  • Les fenêtres d’applications intégrées n’ont pas fonctionné sans écran : la connexion RDP exige un serveur de son, puis les fenêtres RemoteApp ont planté (sway) ou sont restées figées (Xvfb). Le bureau Windows complet par RDP, lui, a fonctionné.
  • Wine et Proton gardent le GPU : le même jeu Windows atteignait environ 95 fps avec Wine et 85 à 96 fps avec Proton, sur la même Intel UHD 770.

Configuration du test

ÉlémentValeur
ServeurLinux (Debian 13), 4 vCPU, 10 Go de RAM, Intel UHD 770 (GPU partagé), noyau 7.3, KVM disponible dans le serveur (virtualisation imbriquée)
WinBoat0.9.2 (.deb de GitHub), Docker 29.9, FreeRDP 3.15
WindowsWindows 11 Pro, anglais, réglages par défaut de WinBoat : 2 cœurs, 4 Go de RAM, disque de 32 Go, image dockur/windows:6.05 (800 Mo)
Affichagesway headless (Wayland + Xwayland), puis Xvfb pour le test RemoteApp

1. Installer WinBoat sur un serveur

WinBoat vérifie ses prérequis dans un assistant : au moins 4 Go de RAM, KVM, Docker avec Compose v2 et FreeRDP 3. Notre serveur avait tout, KVM compris : le serveur est lui-même une machine virtuelle, et WinBoat en lance une seconde à l’intérieur.

apt install ./winboat-0.9.2-amd64.deb freerdp3-x11
usermod -aG docker,kvm votreutilisateur

L’assistant demande une version de Windows, une langue, un nom d’utilisateur et un mot de passe Windows, et les ressources à donner à Windows. Après un clic sur Install, WinBoat écrit un docker-compose.yml, télécharge Windows 11 chez Microsoft et l’installe sans autre question :

ÉtapeDurée
Téléchargement de Windows 11 (ISO de 8,5 Go)1 min 30 s
Installation automatique de Windows14 min 08 s
Total, de « Install » à « Windows has been installed successfully »15 min 52 s
Interface de WinBoat listant les applications de Windows 11, sur l'écran virtuel d'un serveur Linux
La liste des applications de WinBoat sur l'écran virtuel du serveur : 94 applications et raccourcis Windows trouvés.

2. Ce que ça coûte

RessourceMesure
RAM réservée par le conteneur4,15 Gio, tant que Windows tourne
CPU pendant l’installation1 à 2 cœurs
CPU pendant les 15 minutes après l’installationenviron 2 cœurs (Windows termine sa configuration)
CPU avec Windows au reposenviron 0,4 vCPU, pointes brèves à 1,3
Disque sur le serveur19 Go : 8,5 Go d’ISO conservés dans le dossier + 11 Go pour le disque Windows
Graphique en barres : RAM utilisée, 4,2 Go pour le conteneur WinBoat avec Windows au repos, 3,2 Go pour le serveur Linux entier faisant tourner SuperTuxKart avec Proton
Au repos, le Windows de WinBoat occupe plus de RAM que notre serveur Linux entier en train de faire tourner un jeu Windows avec Proton.

Sur un serveur de 8 Go de RAM, le Windows de WinBoat en prend la moitié avant même d’ouvrir une application. Avec Wine, rien à réserver : seul le programme lancé utilise de la mémoire.

3. Le GPU dans Windows

Nous avons ouvert PowerShell dans Windows et listé les cartes graphiques :

Name          : Red Hat VirtIO GPU DOD controller
Name          : Microsoft Remote Display Adapter
PowerShell dans le Windows 11 de WinBoat listant ses cartes graphiques : Red Hat VirtIO GPU DOD controller et Microsoft Remote Display Adapter
Dans le Windows de WinBoat, pas de GPU Intel : une carte virtuelle d'affichage seul et la carte du Bureau à distance.

Le conteneur reçoit /dev/kvm mais pas le GPU, et le pilote « DOD » (affichage seul) n’a pas de 3D. Windows dessine donc tout avec le CPU : très bien pour une application de bureau, pas pour un jeu. Les développeurs de WinBoat annoncent l’accélération GPU pour la version 1.0. C’est pourquoi nous n’avons pas lancé le benchmark de SuperTuxKart dans WinBoat :

Graphique en barres : SuperTuxKart en 1080p, 95 fps avec Wine, 91 fps avec Proton, 111 fps dans une VM Windows 11 avec le pilote Intel, et pas de GPU dans WinBoat
Le même jeu Windows sur le même GPU : Wine, Proton et un serveur Windows 11 avec le pilote Intel utilisent le GPU ; le Windows de WinBoat n'en a pas.

4. Des fenêtres d’applications sur un serveur sans écran

La fonction phare de WinBoat est d’afficher chaque application Windows dans sa propre fenêtre Linux (FreeRDP RemoteApp). Sur notre serveur sans écran :

  1. Le premier lancement a échoué (FreeRDP process returned error code '138') : WinBoat demande le son à FreeRDP via PulseAudio, et un serveur n’a pas de serveur de son. Lancer le service PulseAudio de PipeWire dans la session a réglé le problème (apt install pipewire-pulse wireplumber).
  2. Sur l’écran virtuel sway (Xwayland), FreeRDP s’est ensuite arrêté sur une erreur X11 BadMatch dès l’ouverture de la fenêtre.
  3. Sur Xvfb avec un gestionnaire de fenêtres simple, les fenêtres du Bloc-notes se sont ouvertes (la liste des fenêtres affichait « Untitled - Notepad ») mais leur contenu est resté figé sur l’image de connexion de Windows.
  4. Le bureau Windows complet par RDP a fonctionné du premier coup (vidéo en haut de l’article).
WinBoat sur un écran X virtuel avec une fenêtre RemoteApp du Bloc-notes figée sur l'image de connexion de Windows
La fenêtre RemoteApp du Bloc-notes, ouverte par WinBoat sur Xvfb, figée sur l'image de connexion.

WinBoat est conçu pour un PC de bureau Linux avec un vrai écran. Sur un serveur, utilisez le bureau Windows complet (Bureau à distance depuis votre ordinateur, par un tunnel SSH vers le port 47300) ou lancez directement dockur/windows avec Docker Compose : c’est ce que WinBoat utilise en dessous.

WinBoat, Wine/Proton ou Windows 11 ?

Wine / ProtonWinBoatOption Windows 11
Ce qui tournele programme Windows, sous Linuxun Windows complet dans un conteneurWindows 11 Pro sur tout le serveur
GPU pour le programmeoui (OpenGL, Vulkan, DXVK)nonoui (pilote Intel)
SuperTuxKart 1080penviron 95 fps (Wine), 85 à 96 fps (Proton)non lancé, pas de GPU111 fps
RAM réservéeseulement celle du programme4 Go pour Windowstout le serveur
Installationquelques minutes16 min, automatiquefaite pour vous
Idéal pourles jeux et programmes connus pour marcherles applications de bureau et métier qui refusent Winetout le reste

Notre conseil :

  • Jeux : Wine ou Proton, sur le GPU. Voir Steam et Proton sur un serveur cloud GPU et les jeux Windows avec Wine.
  • Une application Windows de bureau ou métier qui ne marche pas avec Wine : WinBoat (ou dockur/windows) convient, à condition de lui donner 4 Go de RAM et d’utiliser le bureau Windows complet sur un serveur.
  • Tout le reste, ou un programme Windows qui a besoin du GPU : l’option Windows 11 (10 €, payés une seule fois), avec le pilote graphique d’Intel.

WinBoat a besoin de KVM dans votre serveur (virtualisation imbriquée). Il a fonctionné sur notre serveur de test ; demandez-nous par e-mail de vérifier qu’elle est activée sur le vôtre. Avec 4 Go pris par Windows, choisissez iGPU Power (4 vCPU, 14 Go de RAM) plutôt qu’iGPU Start (2 vCPU, 8 Go).

Envie d’un serveur prêt à l’emploi ? Demandez-le par e-mail à la commande (contact@linuxgpu.eu) : nous pouvons vous livrer le serveur avec Wine, WinBoat ou Steam déjà installés et réglés côté serveur.

Des systèmes prêts pour le jeu dès la livraison. Les systèmes que nous installons par défaut sont déjà préparés pour cela : Debian 13 avec un noyau récent (7.3), les pilotes GPU Intel et Mesa (OpenGL, Vulkan, encodage vidéo VA-API), et Windows 11 (option) avec le pilote graphique d’Intel et le Bureau à distance rendu par le GPU. Aucun pilote à chercher : installez votre jeu et Sunshine, et jouez.

Essayer

Voir les offres : iGPU Power coûte 29,99 € HT par mois, iGPU Start 14,99 €.