Install guide · Linux

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

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.

⬇ Download for Linux

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.

Restrictive network? MoonlightWeb falls back automatically (UDP → TCP → WSS), so it keeps working through strict firewalls and hostile hotel Wi-Fi.

Keep reading