Stream your Linux gaming PC to any browser
MoonlightWeb is a free, open-source (GPL-3.0) server that streams your Sunshine gaming rig to any device with a browser. One package on the gaming PC. Every other device just opens a URL.
What you need
- A Linux gaming PC (x64) with a GPU capable of hardware encoding — the machine that runs your games.
- Sunshine as the streaming host. Don't have it yet? MoonlightWeb's setup wizard installs and pairs it for you.
- Any device with a modern browser as the client: Chrome, Edge, Safari or Firefox. No app, no account.
Installation, step by step
Download a package
From the releases page, pick the one for your distro family:
.deb for Debian, Ubuntu, Mint, Pop!_OS, elementary, Zorin;
.rpm for Fedora, RHEL, CentOS Stream, Rocky, Alma, Nobara, openSUSE;
a portable .AppImage for Arch, Manjaro, SteamOS, Bazzite and everything else.
Every package is self-contained (Qt and OpenSSL bundled — no dependencies to install).
Install and launch — on the machine that runs Sunshine
# 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-*-linux-x64.AppImage
./moonlightweb-*-linux-x64.AppImage
The package installs to /opt/moonlightweb, adds a menu entry and a
moonlightweb command, opens the firewall ports it needs, and starts the server right away.
Let the wizard install Sunshine
On its first launch MoonlightWeb opens https://localhost/setup. If Sunshine isn't
installed yet, the wizard downloads the official package for your distro (apt, dnf, zypper or pacman family),
installs it behind a single password prompt, and pairs it for you — nothing to do by hand. On other
distributions, install Sunshine yourself and pair from the interface.
Open a browser on any device
On the PC itself: https://localhost. From another device on your network: your LAN IP.
From anywhere: your personal sub-domain (https://you.moonlightweb.top) once you enable
one-click Internet access in the admin page.
Pair once with a PIN
Your Sunshine hosts are already listed — discovered automatically on the LAN via mDNS. Enter the PIN Sunshine displays, and the pairing is remembered forever.
Press play
Pick a game or the full desktop. Fullscreen, gamepad in hand — up to 4K HDR at 240 fps, with under 20 ms latency over Wi-Fi.
Troubleshooting
Double-clicking the AppImage only opens a "search for software" window
An AppImage is a plain file: your desktop refuses to run it until it is marked executable
(chmod +x moonlightweb-*.AppImage, or Properties → Permissions → Allow executing). It also
needs FUSE 2, which Ubuntu 22.04 and later no longer ship — install it with
sudo apt install libfuse2t64 (libfuse2 before Ubuntu 24.04), or run the file once with
./moonlightweb-*.AppImage --appimage-extract-and-run.
On Debian, Ubuntu and derivatives, just use the .deb instead — it installs with a
double-click, has none of these caveats, and adds a proper menu entry.
The host doesn't appear in the browser
Make sure the client device is on the same network as the gaming PC and that your firewall allows MoonlightWeb's ports. You can also add a host manually by IP.
HEVC or AV1 is greyed out
Codec options your browser can't hardware-decode are automatically disabled — that's expected. H264 works everywhere; HEVC and AV1 availability depends on the client device's browser and GPU.
Stream feels choppy on a weak connection
Lower the streamed resolution and enable Video Enhancement: the stream is upscaled and sharpened on the client's GPU (WebGPU running SGSRv1 + FSR1), so a 720p stream looks close to 1440p.