Streame deinen Linux-Gaming-PC in jeden Browser
MoonlightWeb ist ein kostenloser Open-Source-Server (GPL-3.0), der deinen Gaming-Rechner auf jedes Gerät mit Browser streamt. Ein Paket auf dem Gaming-PC. Alle anderen Geräte öffnen einfach eine URL.
Was du brauchst
- Einen Linux-Gaming-PC (x64) mit einer GPU, die Hardware-Encoding beherrscht — den Rechner, auf dem deine Spiele laufen.
- Sonst nichts zu installieren — MoonlightWeb erfasst den Desktop selbst (KMS oder unter Wayland die Bildschirmaufnahme des Compositors) und encodiert ihn über VA-API oder Vulkan Video. Für den Ton braucht es PipeWire: Auf einem Rechner, der noch reines PulseAudio nutzt, bleibt der Stream stumm, und das Log sagt es dir. Du hast schon irgendwo Sunshine, Wolf oder MultiSeat laufen? Diese Rechner koppelst du auf derselben Seite.
- Als Client jedes Gerät mit einem modernen Browser: Chrome, Edge, Safari oder Firefox. Keine App, kein Konto.
- Eine Distribution, die nicht älter ist als Ubuntu 22.04, Debian 12 oder Fedora 36 (glibc 2.34+). Qt und OpenSSL sind mitgeliefert, die C-Laufzeitbibliothek des Systems kann es aber nie sein — auf einer älteren Distro lässt sich das Paket installieren, die App startet dann aber nicht.
Der schnelle Weg: ein Befehl, Updates inklusive
MoonlightWeb stellt signierte APT- und DNF-Repositorys bereit. Installierst du aus einem davon, hält die Update-Verwaltung deines Systems MoonlightWeb von selbst aktuell, und die App erscheint in GNOME Software, KDE Discover und Ubuntus App Center wie jede andere Anwendung. Dieser eine Befehl erkennt deine Distribution und macht das Richtige:
curl -fsSL https://moonlightweb.top/install.sh | bash
Lieber von Hand? Das sind genau diese Schritte:
# 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 und andere unveränderliche (immutable) Systeme haben keinen Paketmanager, dem man ein Repository hinzufügen könnte — sie bleiben beim portablen AppImage, das derselbe Befehl für dich herunterlädt. Der manuelle Weg unten funktioniert weiterhin überall.
Lieber Docker? Headless-Server, NAS und Mini-PCs
Offizielle Multi-Arch-Images (amd64 + arm64) werden in der GitHub Container Registry veröffentlicht. Ein Befehl auf jedem Linux-Host mit Docker — --network host setzt den Container direkt in dein LAN, damit er die Hosts darin findet. Ein Container hat keinen Desktop zum Erfassen, daher streamt er die Rechner, mit denen du koppelst, nicht sich selbst:
docker run -d --name moonlightweb --network host \
-v mw-data:/data --restart unless-stopped \
ghcr.io/linckosz/moonlight-web:latest
Ein Container hat keinen vertrauenswürdigen lokalen Browser, also leg einmalig eine Zugangs-PIN fest, öffne dann https://<server-ip> und gib sie ein:
docker exec moonlightweb moonlightweb --new-pin
Aktualisiere mit docker pull und erstelle den Container neu — das Volume behält deine Kopplungen und dein Zertifikat. Compose-Datei, Port-Tabelle, macvlan und Internetzugriff per Klick stehen alle in der Docker-Anleitung.
Installation Schritt für Schritt
Lade ein Paket herunter
Wähle auf der Releases-Seite das Paket für deine Distro-Familie: .deb für Debian, Ubuntu, Mint, Pop!_OS, elementary, Zorin; .rpm für Fedora, RHEL, CentOS Stream, Rocky, Alma, Nobara, openSUSE; ein portables .AppImage für SteamOS, Bazzite und alles andere (unter Arch und Manjaro das AUR-Paket moonlightweb-bin). Jedes Paket ist eigenständig (Qt und OpenSSL mitgeliefert — keine Abhängigkeiten zu installieren).
Installieren und starten — auf dem Gaming-PC
# 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
Das Paket installiert sich nach /opt/moonlightweb, legt einen Menüeintrag und einen moonlightweb-Befehl an, öffnet die nötigen Ports in der Firewall und startet den Server sofort.
Um diesen Rechner zu hosten, nimm das .deb, das .rpm oder das AUR-Paket. Die Bildschirmaufnahme braucht eine File Capability, die in einem AppImage nicht erhalten bleiben kann — ein portables AppImage streamt weiterhin die Sunshine-, Wolf- und MultiSeat-Hosts in deinem Netzwerk, aber nie den eigenen Bildschirm.
Beantworte die Frage des Einrichtungsassistenten
Beim ersten Start öffnet MoonlightWeb https://localhost/setup und stellt dort die einzige verbleibende Frage: ob die Internet-Verbindung erlaubt werden soll (Remote-Streaming-Sessions, standardmäßig aus). Sonst wird nichts installiert — diesen Desktop erfasst die App selbst. In einer Wayland-Session außer GNOME kann der erste Stream einmal den Bildschirmfreigabe-Dialog des Compositors öffnen; die Freigabe bleibt danach gespeichert.
Öffne einen Browser auf einem beliebigen Gerät
Auf dem PC selbst: https://localhost. Von einem anderen Gerät in deinem Netzwerk: deine LAN-IP. Spielen von außerhalb deines Netzwerks: Schalte den Internetzugriff ein, und die App gibt dir einen Remote-Link, der direkt zu diesem Rechner führt. Du kannst auch deine eigene Domain und dein eigenes Zertifikat verwenden.
Dein PC ist schon da
Dieser Rechner steht sofort in der Liste, mit einer Karte pro Bildschirm — nichts zu koppeln, keine PIN. Andere Hosts in deinem Netzwerk (Sunshine, Wolf, MultiSeat) werden daneben per mDNS gefunden: Die koppelst du einmal — bei Sunshine, indem du die PIN, die MoonlightWeb anzeigt, auf der Weboberfläche von Sunshine eingibst — und die Kopplung bleibt für immer gespeichert.
Drück auf Play
Wähle einen Bildschirm, ein Spiel oder den ganzen Desktop. Vollbild, Gamepad in der Hand — bis zu 4K mit 240 fps, bei unter 20 ms Latenz über WLAN. (HDR von einem Linux-Host ist noch nicht implementiert.)
Fehlerbehebung
Die Installation klappt, aber ein Klick auf die App bewirkt rein gar nichts
Fast immer eine Distribution, die älter ist als die Voraussetzung oben. Der Menüeintrag startet ohne Terminal, also kann der Fehler des Loaders nirgends angezeigt werden, und der Klick wirkt, als hätte er nichts getan. Starte /opt/moonlightweb/bin/MoonlightWeb aus einem Terminal: Eine Zeile mit GLIBC_ oder GLIBCXX_ not found bestätigt es. Die einzige Lösung ist ein Upgrade der Distribution — ein Programm kann seine eigene C-Laufzeitbibliothek nicht mitbringen.
Ein Doppelklick auf das AppImage öffnet nur ein Fenster „nach Software suchen“
Ein AppImage ist eine ganz normale Datei: Dein Desktop weigert sich, sie auszuführen, bis sie als ausführbar markiert ist (chmod +x moonlightweb-*.AppImage oder Eigenschaften → Zugriffsrechte → Datei als Programm ausführen). Außerdem braucht es FUSE 2, das Ubuntu ab 22.04 nicht mehr mitliefert — installiere es mit sudo apt install libfuse2t64 (libfuse2 vor Ubuntu 24.04) oder starte die Datei einmalig mit ./moonlightweb-*.AppImage --appimage-extract-and-run. Unter Debian, Ubuntu und Derivaten nimm einfach stattdessen das .deb — es installiert sich per Doppelklick, hat keinen dieser Haken und legt einen richtigen Menüeintrag an.
Der Host erscheint nicht im Browser
Stell sicher, dass das Client-Gerät im selben Netzwerk ist wie der Gaming-PC und dass deine Firewall die Ports von MoonlightWeb zulässt. Du kannst einen Host auch manuell per IP hinzufügen.
HEVC oder AV1 ist ausgegraut
Codecs, die dein Browser nicht per Hardware decodieren kann, werden automatisch deaktiviert — das ist so gewollt. H264 läuft überall; ob HEVC und AV1 verfügbar sind, hängt von Browser und GPU des Client-Geräts ab.
Der Stream ruckelt bei schwacher Verbindung
Senk die Stream-Auflösung und aktiviere Video Enhancement: Der Stream wird auf der GPU des Clients hochskaliert und nachgeschärft (WebGL2 oder WebGPU mit SGSRv1 + FSR1), sodass ein 720p-Stream fast wie 1440p aussieht.