Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/LizardByte/Sunshine/llms.txt

Use this file to discover all available pages before exploring further.

General settings control Sunshine’s basic behavior including display language, logging verbosity, system tray integration, and global commands.

Display and Localization

locale
string
default:"en"
The locale used for Sunshine’s user interface.Available Languages:
  • bg - Bulgarian
  • cs - Czech
  • de - German
  • en - English
  • en_GB - English (UK)
  • en_US - English (United States)
  • es - Spanish
  • fr - French
  • it - Italian
  • ja - Japanese
  • ko - Korean
  • pl - Polish
  • pt - Portuguese
  • pt_BR - Portuguese (Brazilian)
  • ru - Russian
  • sv - Swedish
  • tr - Turkish
  • uk - Ukrainian
  • zh - Chinese (Simplified)
  • zh_TW - Chinese (Traditional)
locale = en
sunshine_name
string
default:"PC hostname"
The name displayed by Moonlight when browsing for hosts.
sunshine_name = My Gaming PC

Logging Configuration

min_log_level
string
default:"info"
The minimum log level printed to standard output.Available Levels:
  • verbose - All logging messages (may affect performance)
  • debug - Debug messages and higher (may affect performance)
  • info - Informational messages and higher
  • warning - Warning messages and higher
  • error - Error messages and higher
  • fatal - Only fatal messages
  • none - No log messages
min_log_level = info
Using verbose or debug log levels may negatively affect streaming performance.
log_path
string
default:"sunshine.log"
The path where the Sunshine log file is stored.
log_path = sunshine.log

System Integration

system_tray
boolean
default:"enabled"
Show icon in system tray and display desktop notifications.
system_tray = enabled
notify_pre_releases
boolean
default:"disabled"
Whether to be notified of new pre-release versions of Sunshine.
notify_pre_releases = disabled

Global Commands

global_prep_cmd
array
default:"[]"
A list of commands to run before/after all applications. If any prep command fails, starting the application is aborted.Each command can have:
  • do - Command to run before launching
  • undo - Command to run after closing
  • elevated - Whether to run with admin privileges (Windows only)
global_prep_cmd = [
  {
    "do": "nircmd.exe setdisplay 1280 720 32 144",
    "elevated": true,
    "undo": "nircmd.exe setdisplay 2560 1440 32 144"
  }
]

Configuration Files

file_apps
string
default:"apps.json"
The application configuration file path containing a JSON formatted list of applications that can be started by Moonlight.
file_apps = apps.json
credentials_file
string
default:"sunshine_state.json"
The file where user credentials for the web UI are stored.
credentials_file = sunshine_state.json
file_state
string
default:"sunshine_state.json"
The file where the current state of Sunshine is stored.
file_state = sunshine_state.json

SSL Certificates

pkey
string
default:"credentials/cakey.pem"
The private key used for the web UI and Moonlight client pairing.
For best compatibility, use an RSA-2048 private key. Not all Moonlight clients support ECDSA keys or other RSA key lengths.
pkey = /dir/pkey.pem
cert
string
default:"credentials/cacert.pem"
The certificate used for the web UI and Moonlight client pairing.
For best compatibility, use a certificate with an RSA-2048 public key.
cert = /dir/cert.pem

Example Configuration

# Display Settings
locale = en_US
sunshine_name = Gaming Server

# Logging
min_log_level = info
log_path = sunshine.log

# System Integration  
system_tray = enabled
notify_pre_releases = disabled

# File Paths
file_apps = apps.json
credentials_file = sunshine_state.json

Next Steps

Audio/Video Settings

Configure encoders and streaming quality

Input Configuration

Set up gamepad and input device emulation

Build docs developers (and LLMs) love