Steam Streaming
This guide covers how to stream games from the headless server gaming stack to any thin client, laptop, mobile device, or TV.
The host runs Sunshine on top of Steam-Headless, accelerated by the server's AMD Radeon AI PRO R9700 (hardware-accelerated AV1, HEVC, and H.264 video encoding via VA-API). Clients connect using the open-source Moonlight GameStream client.
Server & Connection Details
- Hostname:
sunshine.drheck.dev - Internal IPv4:
10.0.0.112 - Internal IPv6:
[fd77:7777:5010:0:1337:f1ac:d00d:4799] - Public IPv6:
[2603:3001:626:9d40:1337:f1ac:d00d:4799] - Sunshine Admin Web Portal:
https://sunshine.drheck.dev(Authentik SSO protected, restricted toakadmin) - Headless Desktop Web Viewer (noVNC):
http://10.0.0.112:8083(LAN access for initial Steam GUI login and 2FA)
Universal Pairing Process
Every Moonlight client connects via mutual TLS certificates authenticated once with a 4-digit PIN:
- Launch Moonlight on your client device.
- Click the + (Add Host) button (or select
sunshineif discovered via mDNS). - Enter
sunshine.drheck.dev(or the internal IP10.0.0.112if on local LAN). - Moonlight will display a random 4-digit PIN (e.g.
4821). - Open a browser to
https://sunshine.drheck.dev/pinand log in with yourakadminAuthentik account. - Enter the 4-digit PIN and give your client a friendly name.
- Click Send. The lock icon on Moonlight will turn into a green checkmark, showing your available applications (
Desktop,Steam Big Picture).
Client Setup Instructions
1. Arch Linux (Desktop / Laptop / Handheld)
Installation
Moonlight is available in the official Arch repositories:
sudo pacman -S moonlight-qt
(Optional gamepad support packages):
# For Xbox Wireless controllers over Bluetooth
sudo pacman -S xpadneo-dkms
# For PlayStation DualSense / DualShock controllers
sudo pacman -S linux-firmware
Configuration & Tuning
- Open Moonlight Settings (Gear Icon):
- Resolution: Match your monitor natively (e.g.,
1920x1080,2560x1440, or3840x2160). - Frame Rate: Set to
60 FPSor120 FPSdepending on your screen refresh rate. - Video Bitrate:
- 1080p60: 20–30 Mbps
- 1440p60/120: 40–60 Mbps
- 4K60/120: 60–80 Mbps
- Video Codec: Choose Automatic or force HEVC / AV1 (the R9700 encodes AV1 and HEVC with ultra-low latency).
- Hardware Acceleration: Set to
VA-APIorVDPAUdepending on your client GPU.
- Resolution: Match your monitor natively (e.g.,
2. Android (Phones & Tablets)
Installation
- Install Moonlight Game Streaming from the Google Play Store or F-Droid.
Controller Support
- Connect any Bluetooth gamepad (Xbox Wireless, PS5 DualSense, 8BitDo, Razer Kishi, Backbone One). Android natively maps standard HID gamepads.
- On-screen virtual touchscreen controls are available if no gamepad is connected.
Configuration & Tuning
- Open Settings in Moonlight:
- Display Resolution: Select Native resolution or
1080p. - Framerate: Match your phone screen (
60 FPS,90 FPS, or120 FPSfor high-refresh AMOLED panels). - Video Decoder: Set to Hardware decoding and enable Prefer HEVC/H.265.
- Stretch to fit: Enable if your phone has a 19.5:9 or 20:9 ultrawide aspect ratio and you want to eliminate black bars (or leave unchecked for pixel-perfect 16:9).
- Touch Mode: Select Trackpad Mode for desktop navigation or Touchscreen Mode for direct tap interactions.
- Display Resolution: Select Native resolution or
3. iPad / iOS
Installation
- Download Moonlight Game Streaming from the Apple App Store.
Controller Support
- Connect any MFi, PlayStation (DualShock 4 / DualSense), or Xbox Series/One controller via Settings > Bluetooth.
- Full L3/R3 clickable thumbsticks and analog triggers are supported natively by iOS.
iPad-Specific Tuning
- Open Moonlight on the iPad and tap Settings:
- Resolution: iPads have a 4:3 / 3:2 aspect ratio. You can pick:
1920x1080or2560x1440(standard 16:9 with letterboxing).- Custom Resolution: Enter your iPad's exact panel resolution (e.g.
2048x1536or2388x1668) for a full-screen, edge-to-edge experience without black bars.
- Frame Rate: If using an iPad Pro with ProMotion, select 120 FPS.
- HDR: If using an iPad Pro with an XDR Liquid Retina display, enable HDR in Moonlight settings for 10-bit color.
- Mouse & Keyboard: iPadOS supports Bluetooth mice and magic keyboards. Enable Optimize mouse for remote desktop in settings for zero mouse acceleration.
- Resolution: iPads have a 4:3 / 3:2 aspect ratio. You can pick:
4. Google TV / Android TV (Chromecast, Shield TV, Smart TVs)
Installation
- Open the Google Play Store on your Google TV / Android TV interface.
- Search for
Moonlight Game Streamingand click Install.
Controller Support
- Pair an Xbox or PlayStation controller directly to Google TV via Settings > Remotes & Accessories > Pair accessory.
- USB gamepads and 2.4GHz wireless dongles plugged into TV USB ports work out of the box.
TV-Specific Optimizations
- Open Moonlight on your TV and open Settings:
- Resolution: Select
1080p(for Chromecast 4K or 1080p dongles) or4K(for NVIDIA Shield or high-performance TV SoCs). - Frame Rate: Set to
60 FPS. - Frame Pacing: Set to Prefer smoothest video. This reduces micro-stutters caused by TV display buffer mismatches.
- Audio Configuration:
- Set to Stereo for TV speakers or soundbars.
- Set to 5.1 Surround Sound if your TV connects to an AV receiver or multi-channel eARC sound system.
- Network: For optimal results with 4K streaming on TVs, use a 5GHz Wi-Fi band or an Ethernet adapter.
- Resolution: Select
Available Applications
| App Entry | Description | Ideal For |
|---|---|---|
| Steam Big Picture | Launches Steam directly in controller-friendly Big Picture UI | Gaming with Xbox / PS gamepads on TV or handheld |
| Desktop | Opens full Xfce Linux desktop on virtual display :55 |
Keyboard & mouse games, emulators, web apps |
To add custom games, scripts, or emulators, navigate to https://sunshine.drheck.dev/apps and click + Add.
Essential Navigation Shortcuts
| Action | Keyboard Shortcut | Gamepad Shortcut |
|---|---|---|
| Quit Stream | Ctrl + Alt + Shift + Q |
Hold Start + Select + L1 + R1 for 3 seconds |
| Toggle Fullscreen | Ctrl + Alt + Shift + F11 |
— |
| Capture / Release Mouse | Ctrl + Alt + Shift + Z |
— |
| Show Stream Stats (FPS, Ping, Loss) | Ctrl + Alt + Shift + S |
— |
| Send Ctrl+Alt+Del | Ctrl + Alt + Shift + D |
— |