Skip to content

docs: explain how to watch a GUI session, since tmate cannot forward X11 - #24

Open
jchak7 wants to merge 1 commit into
WarpBuilds:masterfrom
jchak7:docs/gui-session-vnc
Open

jchak7 wants to merge 1 commit into
WarpBuilds:masterfrom
jchak7:docs/gui-session-vnc

Conversation

@jchak7

@jchak7 jchak7 commented Sep 19, 2026

Copy link
Copy Markdown

What this does

Adds a README section, Watching a GUI session (browser / e2e tests), answering #12.

Why a docs change and not X11 forwarding

The SSH command the action prints connects to the tmate relay (gha.warp.build), not to an sshd on the runner. tmate multiplexes a terminal and does not implement the SSH X11 channel, so ssh -X / ssh -Y have nothing on the far end to attach to. That makes X11 forwarding a property of tmate's transport rather than something this action can add — but the underlying need in #12 (watch an e2e session live instead of only recording it) is straightforward to meet.

What the section documents

  • Run the GUI under Xvfb, serve the display with x11vnc bound to loopback (-localhost -viewonly), and put noVNC (websockify) in front on port 6080 — all started in a step before the debugger, with the debugger in detached mode so the session is live while tests run.
  • Expose 6080 from inside the session, two ways: a cloudflared quick tunnel (no account) or ssh -R to a host the user controls.
  • A short note on what the tunnel URL grants and how to lock it down (-viewonly, -passwd, prefer the SSH variant, Ctrl-C the tunnel when done).

Verification

Chain verified locally end to end on Ubuntu: Xvfb :99 → GUI app → x11vnc (RFB 003.008 handshake on 5900) → websockify serving noVNC on 6080 (vnc.html returns 200). The cloudflared step was exercised only up to tunnel provisioning in my environment (egress-restricted); on a runner with normal egress it prints a trycloudflare.com URL.

Happy to turn this into a vnc: true input that automates the setup and prints the URL in the job summary if that is a direction you'd take — thought a docs change was the right first step rather than adding a third-party binary to the action unasked.

Resolves #12

The SSH endpoint this action hands out is a tmate relay, not an sshd on
the runner, and tmate does not implement the SSH X11 channel — so
`ssh -X` has nothing to attach to and X11 forwarding is not a feature
the action can grow.

Document the path that does work: run the GUI under Xvfb, serve it with
x11vnc bound to loopback, put noVNC in front of it, and expose port 6080
from inside the session either through a cloudflared quick tunnel (no
account) or a reverse SSH tunnel to a host you control. Includes a
security note on what the tunnel URL grants.

Resolves WarpBuilds#12
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.

X11 forwarding for GUI in SSH session?

1 participant