About this project

Sunshine is a self-hosted game stream host designed to work with Moonlight clients. It turns a machine into a low-latency cloud gaming server: the host captures the screen, encodes the video, and streams it to a Moonlight client on a variety of devices, while input from the client is sent back to the host. Key capabilities described in the README: - Hardware encoding via AMD (AMF, VAAPI, Vulkan Video), Intel (QuickSync, VAAPI, Vulkan Video, Video Toolbox), NVIDIA (NVENC, VAAPI, Vulkan Video) and Apple (Video Toolbox), plus software encoding on all platforms. - Screen capture methods including DXGI Desktop Duplication and Windows.Graphics.Capture on Windows; KMS/DRM, X11, Wayland (wlroots), XDG Desktop Portal and KWin Screencast on Linux/FreeBSD; ScreenCaptureKit on macOS; and NvFBC on X11. - Gamepad emulation for generic, DualShock/DualSense, Nintendo Switch Pro, and Xbox 360/One/Series controllers, with full support on Linux and Windows and partial support on FreeBSD. - A web UI for configuration and client pairing, reachable from the local server or a mobile device. - Distribution through GitHub releases, Docker Hub, GHCR, Flathub and Winget. System requirements are documented for minimum, 4K and HDR scenarios, covering GPU generations, CPU classes, RAM, OS versions (FreeBSD 15.1+, Debian 13+, Fedora 43+, Ubuntu 22.04+, macOS 14.2+, Windows 11+) and network recommendations. The README also includes compatibility tables for capture-to-encoding combinations on Linux/FreeBSD and links to full documentation on Read the Docs.