Skip to main content
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