Streamez votre PC gamer Linux vers n’importe quel navigateur
MoonlightWeb est un serveur gratuit et open source (GPL-3.0) qui streame votre PC gamer vers n’importe quel appareil doté d’un navigateur. Un seul paquet sur le PC gamer. Tous les autres appareils ouvrent simplement une URL.
Ce qu’il vous faut
- Un PC gamer Linux (x64) avec un GPU capable d’encodage matériel — la machine qui fait tourner vos jeux.
- Rien d’autre à installer — MoonlightWeb capture le bureau lui-même (KMS, ou le partage d’écran du compositeur sous Wayland) et l’encode par VA-API ou Vulkan Video. Il lui faut PipeWire pour le son : sur une machine encore en PulseAudio pur, le flux est muet et le journal le dit. Vous avez déjà un Sunshine, un Wolf ou un MultiSeat quelque part ? Ces machines s’appairent depuis la même page.
- N’importe quel appareil avec un navigateur moderne comme client : Chrome, Edge, Safari ou Firefox. Pas d’application, pas de compte.
- Une distribution pas plus ancienne qu’Ubuntu 22.04, Debian 12 ou Fedora 36 (glibc 2.34+). Qt et OpenSSL sont embarqués, mais la bibliothèque C du système ne peut jamais l’être : sur une distribution plus ancienne, le paquet s’installe puis l’application refuse de démarrer.
La voie rapide : une commande, et les mises à jour en prime
MoonlightWeb publie des dépôts APT et DNF signés. Installer depuis l’un d’eux, c’est laisser le gestionnaire de mises à jour du système garder MoonlightWeb à jour tout seul, et voir l’application apparaître dans GNOME Logiciels, KDE Discover et l’App Center d’Ubuntu comme n’importe quelle autre. Cette commande unique détecte votre distribution et fait ce qu’il faut :
curl -fsSL https://moonlightweb.top/install.sh | bash
Vous préférez le faire à la main ? Ce sont exactement ces étapes :
# Debian / Ubuntu / Mint / Pop!_OS
sudo install -d /etc/apt/keyrings
sudo curl -fsSL -o /etc/apt/keyrings/moonlightweb.gpg https://packages.moonlightweb.top/moonlightweb.gpg
sudo curl -fsSL -o /etc/apt/sources.list.d/moonlightweb.sources https://packages.moonlightweb.top/moonlightweb.sources
sudo apt update && sudo apt install moonlightweb
# Fedora / RHEL / Rocky / Alma / Nobara
sudo curl -fsSL -o /etc/yum.repos.d/moonlightweb.repo https://packages.moonlightweb.top/moonlightweb.repo
sudo dnf install moonlightweb
# openSUSE
sudo curl -fsSL -o /etc/zypp/repos.d/moonlightweb.repo https://packages.moonlightweb.top/moonlightweb.repo
sudo zypper install moonlightweb
# Arch / Manjaro / EndeavourOS
paru -S moonlightweb-bin
SteamOS, Bazzite et les autres systèmes immuables n’ont pas de gestionnaire de paquets auquel ajouter un dépôt : ils gardent l’AppImage portable, que la même commande télécharge pour vous. La méthode manuelle ci-dessous reste valable partout.
Vous préférez Docker ? Serveurs headless, NAS et mini-PC
Des images officielles multi-arch (amd64 + arm64) sont publiées sur le GitHub Container Registry. Une seule commande sur n’importe quel hôte Linux avec Docker — --network host place le conteneur directement sur votre réseau local, pour qu’il découvre les hôtes qui s’y trouvent. Un conteneur n’a pas de bureau à capturer : celui-ci streame donc les machines que vous appairez, pas lui-même :
docker run -d --name moonlightweb --network host \
-v mw-data:/data --restart unless-stopped \
ghcr.io/linckosz/moonlight-web:latest
Un conteneur n’a pas de navigateur local de confiance : définissez donc une fois un code PIN d’accès, puis ouvrez https://<ip-du-serveur> et saisissez-le :
docker exec moonlightweb moonlightweb --new-pin
Mettez à jour avec docker pull puis recréez le conteneur — le volume conserve vos appairages et votre certificat. Le fichier Compose, le tableau des ports, macvlan et l’accès Internet en un clic sont tous dans le guide Docker.
Installation, étape par étape
Téléchargez un paquet
Depuis la page des versions, choisissez selon votre famille de distribution : .deb pour Debian, Ubuntu, Mint, Pop!_OS, elementary, Zorin ; .rpm pour Fedora, RHEL, CentOS Stream, Rocky, Alma, Nobara, openSUSE ; un .AppImage portable pour SteamOS, Bazzite et tout le reste (sur Arch et Manjaro, le paquet AUR moonlightweb-bin). Chaque paquet est autonome (Qt et OpenSSL embarqués — aucune dépendance à installer).
Installez et lancez — sur le PC gamer
# Debian / Ubuntu / Mint / Pop!_OS — double-clicking the .deb works too
sudo apt install ./moonlightweb-*-linux-x64.deb
# Fedora / RHEL / Rocky / Alma / Nobara
sudo dnf install ./moonlightweb-*-linux-x64.rpm
# openSUSE
sudo zypper install --allow-unsigned-rpm ./moonlightweb-*-linux-x64.rpm
# Arch / SteamOS / other — portable AppImage (needs FUSE 2, see below)
chmod +x moonlightweb-*.AppImage
./moonlightweb-*.AppImage
Le paquet s’installe dans /opt/moonlightweb, ajoute une entrée de menu et une commande moonlightweb, ouvre les ports nécessaires dans le pare-feu, et démarre le serveur immédiatement.
Pour héberger cette machine, prenez le .deb, le .rpm ou le paquet AUR. La capture d’écran a besoin d’une capability de fichier, qui ne survit pas dans une AppImage : une AppImage portable streame toujours les hôtes Sunshine, Wolf et MultiSeat de votre réseau, mais jamais son propre écran.
Répondez à l’assistant
Au premier lancement, MoonlightWeb ouvre https://localhost/setup, qui pose la seule question restante : autorisez-vous le lien Internet (sessions de streaming à distance, désactivé par défaut) ? Rien d’autre n’est installé — ce bureau est capturé par l’application elle-même. Sur une session Wayland autre que GNOME, le premier stream peut faire apparaître une fois la boîte de partage d’écran du compositeur ; l’autorisation est ensuite mémorisée.
Ouvrez un navigateur sur n’importe quel appareil
Sur le PC lui-même : https://localhost. Depuis un autre appareil de votre réseau : votre IP locale. Jouer depuis l’extérieur de votre réseau : activez l’accès Internet et l’application vous donne un lien d’accès distant qui mène droit à cette machine. Vous pouvez aussi utiliser votre propre domaine et certificat.
Votre PC est déjà là
Cette machine est listée d’emblée, une carte par écran — rien à appairer, aucun code PIN. Les autres hôtes de votre réseau (Sunshine, Wolf, MultiSeat) sont découverts à côté via mDNS : ceux-là s’appairent une fois — pour Sunshine, en saisissant dans sa page web le PIN qu’affiche MoonlightWeb — et c’est mémorisé pour toujours.
Appuyez sur play
Choisissez un écran, un jeu ou le bureau complet. Plein écran, manette en main — jusqu’à 4K à 240 fps, avec moins de 20 ms de latence en Wi-Fi. (Le HDR depuis un hôte Linux n’est pas encore implémenté.)
Dépannage
Il s’installe très bien, mais cliquer sur l’application ne fait absolument rien
Presque toujours une distribution plus ancienne que le prérequis ci-dessus. L’entrée de menu se lance sans terminal : l’erreur du chargeur n’a nulle part où s’afficher et le clic semble sans effet. Lancez /opt/moonlightweb/bin/MoonlightWeb depuis un terminal : une ligne mentionnant GLIBC_ ou GLIBCXX_ not found le confirme. Le seul remède est de mettre à jour la distribution — un programme ne peut pas embarquer sa propre bibliothèque C.
Un double-clic sur l’AppImage ouvre seulement une fenêtre « rechercher un logiciel »
Une AppImage est un simple fichier : votre bureau refuse de l’exécuter tant qu’elle n’est pas marquée exécutable (chmod +x moonlightweb-*.AppImage, ou Propriétés → Permissions → Autoriser l’exécution). Elle a aussi besoin de FUSE 2, qu’Ubuntu ne fournit plus depuis la 22.04 — installez-le avec sudo apt install libfuse2t64 (libfuse2 avant Ubuntu 24.04), ou lancez le fichier avec ./moonlightweb-*.AppImage --appimage-extract-and-run. Sur Debian, Ubuntu et dérivés, utilisez plutôt le .deb : il s’installe d’un double-clic, n’a aucune de ces contraintes et ajoute une vraie entrée de menu.
L’hôte n’apparaît pas dans le navigateur
Assurez-vous que l’appareil client est sur le même réseau que le PC gamer et que votre pare-feu autorise les ports de MoonlightWeb. Vous pouvez aussi ajouter un hôte manuellement par son IP.
HEVC ou AV1 est grisé
Les codecs que votre navigateur ne peut pas décoder matériellement sont automatiquement désactivés — c’est normal. H264 fonctionne partout ; la disponibilité de HEVC et AV1 dépend du navigateur et du GPU de l’appareil client.
Le stream saccade sur une connexion faible
Baissez la résolution streamée et activez le Video Enhancement : le stream est upscalé et accentué sur le GPU du client (WebGL2 ou WebGPU avec SGSRv1 + FSR1), si bien qu’un stream 720p paraît proche du 1440p.