From e3dba1fdf9a8e88bfdd7a58fc2d318c2cd7e2d3b Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Fri, 28 Aug 2026 20:19:13 -0400 Subject: [PATCH] templates: apply the tvOS setup reorder to the served /apple page The instructions are duplicated between the docs and the HTML page headscale serves at /apple. Reorder the tvOS steps there to match, so the VPN configuration is installed before the alternate coordination server URL is set. (cherry picked from commit efe947507b494fa46959a7ebf062d013dcd072b4) --- hscontrol/templates/apple.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/hscontrol/templates/apple.go b/hscontrol/templates/apple.go index 3b120069..b9693083 100644 --- a/hscontrol/templates/apple.go +++ b/hscontrol/templates/apple.go @@ -145,6 +145,19 @@ func Apple(url string) *elem.Element { elem.Text("Install the official Tailscale tvOS client from the "), externalLink("https://apps.apple.com/app/tailscale/id1470499037", "App Store"), ), + elem.Li(nil, + elem.Text("Open "), + elem.Strong(nil, elem.Text("Tailscale")), + ), + elem.Li(nil, + elem.Text("Select "), + elem.Strong(nil, elem.Text("Install VPN configuration")), + ), + elem.Li(nil, + elem.Text("Select "), + elem.Strong(nil, elem.Text("Allow")), + elem.Text(", but don't sign in yet"), + ), elem.Li( nil, elem.Text("Open "), @@ -164,20 +177,9 @@ func Apple(url string) *elem.Element { elem.Li(nil, elem.Text("Return to the tvOS "), elem.Strong(nil, elem.Text("Home")), - elem.Text(" screen"), - ), - elem.Li(nil, - elem.Text("Open "), + elem.Text(" screen and open "), elem.Strong(nil, elem.Text("Tailscale")), ), - elem.Li(nil, - elem.Text("Select "), - elem.Strong(nil, elem.Text("Install VPN configuration")), - ), - elem.Li(nil, - elem.Text("Select "), - elem.Strong(nil, elem.Text("Allow")), - ), elem.Li(nil, elem.Text("Scan the QR code and follow the login procedure"), ),