mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Self-Hostedevaluationupdated 26 Aug 2026

Sunshine review

Sunshine turns a Windows, Linux, macOS, or FreeBSD computer into a game-streaming host for Moonlight clients. It captures the host display, encodes video with supported GPU hardware or software, forwards input, and provides a browser interface for configuration and pairing.

+196stars / 7d
Verdict

Our Sunshine build completed in 10 seconds and npm audit found 0 known vulnerabilities, while the current release spans 4 host operating systems and several hardware encoders. It is the practical first host to try if you already want Moonlight and can test the exact GPU, display server, and client combination before relying on it. Use the packaged release and update promptly, because the May 2026 release included a critical security fix and changed remote web-interface configuration.

We ran it

Lab card: what happened when we ran SunshineScreenshot of Sunshine (app.lizardbyte.dev/Sunshine)
Install✓ · 11s169 packages · 178 MB
Build✓ · 10s
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo16696 files~3,720,307 lines of source · 1497.2 MB · 24 CI workflows · tests dir

Answers from our run

Does Sunshine build from source?

Dependencies installed in 11 seconds (169 packages), and the build succeeded in 10 seconds. We cloned commit f273ce8 into a clean Debian container with 3 CPUs and no project-specific setup.

Does Sunshine have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does Sunshine have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use Sunshine?

Buyers choosing hardware solely from the compatibility tables: the README warns that its requirement tables are a work in progress and says not to purchase hardware from them.

What are the alternatives to Sunshine?

Wolf, Steam Remote Play, Parsec. Our Sunshine build completed in 10 seconds and npm audit found 0 known vulnerabilities, while the current release spans 4 host operating systems and several hardware encoders.

Setup3/5Fast measured build, but capture and encoder setup varies by host
Docs4/5Detailed compatibility tables and separate stable documentation
Community5/5Fresh pushes and active fixes across a 139-item queue
Maturity4/5Broad packages and hardware support, with platform-specific defects

Who it’s for

PC gamers who want to stream their own machine to a TV, handheld, laptop, or phone running Moonlight.
Home-lab operators prepared to match capture and encoding choices to a specific OS and GPU.
Users replacing Nvidia GameStream who want a GPL-licensed host with AMD, Intel, Nvidia, and software encoding paths.
Households that want client pairing and application controls in a local web interface.

Who it’s NOT for

Buyers choosing hardware solely from the compatibility tables: the README warns that its requirement tables are a work in progress and says not to purchase hardware from them.
macOS hosts that need gamepad forwarding: the compatibility table marks every listed gamepad-emulation family unsupported on macOS.
Linux users unwilling to diagnose compositor, capture, and GPU combinations: an open report records frozen video with XDG Portal and KWin capture while audio and input continued.
Windows users who must install outside the C: drive: an open report says the current installer hangs while adding Sunshine to PATH on another drive.
Anyone expecting a hosted cloud-gaming service: Sunshine runs on and streams from a computer you operate, and the client is a separate Moonlight installation.

Setup reality

Our sandbox checkout at commit f273ce8 installed 169 npm packages in 11 seconds and used 178 MB for them. The measured build succeeded in 10 seconds, npm audit found 0 known vulnerabilities, and there was no npm test target to run. The full checkout was 1,497.2 MB across 16,696 files and about 3,720,307 source lines.

A working game host needs more than that build result. You must install a supported package, open the local web interface, create credentials, pair a Moonlight client, add applications, and select a capture and encoder path that fits the host OS and GPU. Remote access also needs deliberate network configuration.

Platform details decide whether setup is easy. The README lists Windows 11+, macOS 14.2+, Ubuntu 22.04+, Debian 13+, Fedora 43+, and FreeBSD 15.1+. Hardware encoding support varies by vendor and OS, while software encoding is the common fallback. The project explicitly warns that its hardware tables are still being revised.

Sunshine is the obvious Moonlight host, provided your hardware fits

Sunshine streams games and a desktop from a computer you control to a Moonlight client. The host captures the screen, encodes it, sends audio and video, and receives keyboard, mouse, or controller input. A browser interface handles configuration and pairing. Sunshine covers Windows, Linux, macOS, and FreeBSD rather than tying the host to one GPU vendor.

The compatibility matrix is the useful part of the pitch. Windows has AMD AMF, Intel QuickSync, Nvidia NVENC, and Qualcomm Media Foundation paths. Linux lists NVENC, VAAPI, and Vulkan Video combinations, while macOS uses Video Toolbox. Software encoding works across all 4 operating-system columns. Capture is separate: Windows uses DXGI or a partial Windows Graphics Capture path, macOS uses ScreenCaptureKit, and Linux or FreeBSD has several display-server-specific choices.

The host is only half of the system

You install Moonlight on the TV, handheld, phone, or another computer, then pair that client with Sunshine. The host web UI lets you configure the service and approve pairing. Troubleshooting can cross 2 applications and a network.

The README sets a baseline of 4 GB RAM, a Ryzen 3 or Core i3, and 5 GHz 802.11ac on both host and client. Its 4K suggestions move to CAT5e Ethernet and stronger CPUs. The maintainers warn that these tables are a work in progress and specifically tell readers not to buy hardware based on them. Test the intended resolution, codec, and controller.

Controller behavior also differs by host. Linux and Windows support the listed generic, PlayStation, Nintendo, and Xbox emulation families. FreeBSD support is partial and lacks features such as motion, touchpad input, battery state, LEDs, adaptive triggers, and raw HID reports. macOS is marked unsupported for every listed gamepad family. A Mac can still encode and capture video, but it is a poor host choice when controller emulation is central.

What happened when we ran it

Our sandbox cloned commit f273ce8 and installed 169 npm packages in 11 seconds. Those dependencies occupied 178 MB, and npm audit returned 0 known vulnerabilities across critical, high, moderate, and low severities. The measured build then completed in 10 seconds. We used an unprivileged container with 3 CPUs, 8 GB of RAM, and no secrets.

The source tree was far larger than the dependency step: 16,696 files, roughly 3,720,307 lines of source, and a 1,497.2 MB checkout. There was no npm test script or target available to our harness, so tests were skipped. The repository does contain a tests directory and 24 CI workflow files. Our result verifies the detected npm install and build path at that commit, not video capture, GPU encoding, controller forwarding, or an end-to-end Moonlight session.

That boundary matters for Sunshine. A container without host display and GPU access cannot answer the compatibility question that decides a real deployment. The 10-second build is reassuring for source work, yet the acceptance test remains a stream from your exact host through the intended network to the intended client. Check wake, audio, input, HDR, and reconnection rather than stopping after one successful picture.

Linux capture choice can decide stability

The README lists KMS/DRM, X11, wlroots, XDG Desktop Portal, KWin Screencast, and NvFBC capture paths across Linux and FreeBSD. Open issue 5241 reports random frozen video with XDG Portal and KWin capture on an AMD RX 6600, even though audio and input kept working. The reporter says KMS did not show the problem.

Windows has its own packaging edge. Open issue 5544 says the installer can hang indefinitely at the PATH step when Sunshine is placed on a drive other than C:. The reported workaround is installing under C:\Program Files\Sunshine. Another open report describes a SIGSEGV notification during startup on Ubuntu 24.04 with an AMD RX 7900 XT, although Sunshine continued to operate. These configuration-specific reports are good reasons to trial autostart before placing the host across the house.

The May 2026 release should be the minimum

Release v2026.516.143833, published May 16, contains what the maintainers call critical security updates and tells users to update quickly. It adds CSRF protection to the web interface. Anyone opening that interface through an address other than localhost must add the allowed origin to sunshine.conf. The release also stopped installing ViGEmBus automatically, so Windows users who need it must install it from the web UI troubleshooting page.

The same release added XDG, PipeWire, and direct KWin capture, Linux Vulkan encoding, FreeBSD packages, Windows ARM64 support, signed Windows AMD64 installers, and a signed macOS disk image. The project was pushed on August 26, 2026, and GitHub showed 139 open issues and pull requests, with recent work on codec probing, Linux capture, the web UI, and session controls. That combination signals active maintenance even though the latest stable tag is several months old.

Choose Sunshine for Moonlight, then prove your exact path

Sunshine is the first self-hosted host worth trying for a Moonlight setup. It has native packages, clear compatibility tables, a web UI, and current development. Steam Remote Play is easier if every game and screen already lives in Steam. Parsec reduces network setup through a managed service, while Wolf is aimed at containerized Linux sessions.

The remaining work is specific: GPU driver, capture API, display state, network, controller, and client. Sunshine cannot remove those variables, but it gives you several routes around a poor combination. Install the current package, keep the web interface local unless you configure it carefully, and run a real session test before declaring the host finished.

Alternatives

ProjectWhat it isPick it when
WolfA container-oriented game-streaming host designed around isolated sessions and Moonlight clients.pick this instead when a Linux server should run containerized gaming sessions rather than mirror one desktop host.
Steam Remote PlayValve's built-in streaming path for games and devices inside the Steam ecosystem.pick this instead when your library is already in Steam and you prefer the integrated client and host setup.
ParsecA proprietary remote-desktop and game-streaming service with managed account connectivity.pick this instead when easy internet traversal and a vendor-run service matter more than self-hosting.

What people are saying

  1. [velocity-scout] LizardByte/Sunshine

Sources

  1. Sunshine README and compatibility tables
  2. Sunshine v2026.516.143833 release
  3. XDG Portal and KWin freeze report
  4. Windows non-C drive installer report
  5. Ubuntu startup SIGSEGV report

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →