# punktfunk host configuration (Windows) — read by the `PunktfunkHost` service. # # `punktfunk-host service install` writes a default copy of this to # %ProgramData%\punktfunk\host.env # Edit that file (not this one) and restart the service to apply: # punktfunk-host service stop # punktfunk-host service start # # Format: KEY=VALUE per line; '#' starts a comment. The service loads these into its environment # and passes PUNKTFUNK_* and RUST_LOG through to the host it launches into the active session. # Hardware encode via NVENC (NVIDIA). The host must be the `--features nvenc` build. Falls back to # the software encoder automatically if NVENC is unavailable. PUNKTFUNK_ENCODER=nvenc # Video source: `virtual` creates a per-client virtual display (SudoVDA) at the client's exact # resolution + refresh — the flagship mode. Requires the SudoVDA indirect display driver installed. PUNKTFUNK_VIDEO_SOURCE=virtual # Capture the secure desktop (UAC / lock / login) so the stream survives those transitions. PUNKTFUNK_SECURE_DDA=1 # Log level (info | debug | trace). Logs land in %ProgramData%\punktfunk\logs\. RUST_LOG=info # The host subcommand the service launches. Default: `serve --gamestream` (native punktfunk/1 host # ALWAYS on + the GameStream/Moonlight-compat planes). Use `serve` for a SECURE native-only host # (no plain-HTTP pairing / legacy GCM nonce reuse — security-review #5/#9). Uncomment to override. #PUNKTFUNK_HOST_CMD=serve --gamestream # Multi-GPU boxes only: force the NVENC/Desktop-Duplication GPU by Description substring. Leave # unset on single-GPU machines (the default auto-picks the discrete adapter). #PUNKTFUNK_RENDER_ADAPTER=4090 # Keep a per-client virtual display alive briefly after disconnect so a quick reconnect reuses it # (no display connect/disconnect chime). Default 10000 ms. #PUNKTFUNK_MONITOR_LINGER_MS=10000