Moonshine: Lets you stream games from your PC to any device running Moonlight
Moonshine is a new, Rust-based headless streaming server designed for Moonlight clients, offering robust game streaming on Linux. It stands out by enabling isolated streaming sessions and operating without a physical monitor, catering to power users who want a dedicated, self-hosted gaming experience. This project appeals to the Hacker News crowd for its technical elegance, open-source nature, and solution to a specific niche in PC gaming and streaming.
The Lowdown
Moonshine is an open-source, Rust-powered server that facilitates game streaming from a Linux PC to any device running a Moonlight client. It aims to provide a high-performance, flexible solution for remote gaming, emphasizing features that cater to advanced users and server environments. By leveraging hardware acceleration and a robust configuration system, Moonshine offers a powerful alternative for game stream hosting.
- Core Functionality: Moonshine streams games from a Linux host to Moonlight clients, transmitting keyboard, mouse, and controller inputs back to the host for remote play.
- Isolated Sessions: A key differentiator is its ability to run each streaming session in an isolated compositor, separate from the host's desktop environment, allowing the host PC to be used concurrently for other tasks.
- Headless Operation: The server can run without a connected monitor, making it suitable for server-grade hardware or systems without a display, eliminating the need for HDMI dummy plugs.
- Hardware Encoding: It supports hardware-accelerated video encoding using H.264, H.265, and experimental AV1 (with a warning regarding NVIDIA driver issues) through compatible GPUs (NVIDIA RTX, AMD RDNA2+, Intel Arc).
- High-Fidelity Streaming: Features include true 10-bit HDR support for compatible games, full input support (mouse, keyboard, gamepad with motion, touchpad, haptics), and low-latency audio streaming (stereo and surround 5.1/7.1).
- Requirements: Moonshine is Linux-exclusive, requires
systemd, a Vulkan video encoding-capable GPU, and Moonlight client version 6.0.0 or higher. - Installation & Configuration: Installation is available via Arch Linux AUR or from source. Configuration is managed through a
config.tomlfile, allowing for custom application definitions, pre/post commands for sessions, and application scanners (e.g., for Steam games or.desktopfiles). - Security: Emphasizes that it's not designed for public networks due to protocol limitations and strongly recommends using a VPN (like Tailscale, WireGuard, ZeroTier) for internet streaming.
In essence, Moonshine delivers a sophisticated, self-hosted game streaming server tailored for Linux users, prioritizing isolation, headless operation, and performance. It serves as a specialized tool for those seeking fine-grained control over their game streaming setup.