Skip to content

docs: add emulator streaming troubleshooting page - #176

Open
gantoine wants to merge 2 commits into
mainfrom
docs/streaming-troubleshooting
Open

gantoine wants to merge 2 commits into
mainfrom
docs/streaming-troubleshooting

Conversation

@gantoine

@gantoine gantoine commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Adds troubleshooting/emulator-streaming.md, distilled from the long Discord streaming help thread, and moves the existing troubleshooting bullets from using/emulator-streaming.md into it. It covers the webstation container only, since the per-emulator broker mods are deprecated.

New entries:

  • Smoke-test the container standalone first (vkcube should name the GPU, not llvmpipe)
  • Minimal NVIDIA compose block and nvidia-ctk runtime configure
  • Silent crashes: dmesg for Xid errors and OOM kills
  • Duplicate containers: keys in config.yml
  • Remote play: host must be reachable by the browser, self-signed Selkies cert behind a proxy, one proxy host covers stream and broker
  • ROM path = library_path + library-relative path, so mounts must mirror the library layout (checked against backend/endpoints/streaming.py at the pinned ref)
  • Gamepad input failing in Zen browser

🤖 Generated with Claude Code

gantoine and others added 2 commits October 8, 2026 19:58
Distills setup issues from the Discord streaming thread: standalone
container smoke test, NVIDIA GPU passthrough, silent crashes, remote
access and reverse proxying, ROM path mismatches, duplicate YAML keys
and browser gamepad support. Moves the existing troubleshooting list
off the feature page.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ting

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

The stream is an iframe the browser loads straight from `host`, so `host` has to be HTTPS and reachable from wherever the browser is. A LAN address works at home but gives a 502 or a blank player outside it. Open the `host` URL directly from the client machine to see what it does.

For remote play, put the container behind your [reverse proxy](../install/reverse-proxy.md) and set `host` to its public HTTPS address. Selkies serves a self-signed certificate on its HTTPS port, so either proxy to that port with certificate checks turned off (`tls_insecure_skip_verify` in Caddy) or proxy to the container's plain HTTP port.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you think we can just drop mention of the https port? since the user has to set up a RP for same-origin anyway, i think its just adding confusion

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants