Installationsanleitung · Linux

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

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.)

⬇ Für Linux herunterladen

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.

Restriktives Netzwerk? MoonlightWeb weicht automatisch aus (UDP → TCP) und funktioniert so auch hinter strengen Firewalls und in feindseligem Hotel-WLAN.

Weiterlesen