Modernize Tailscale Funnel setup and migration guidance - #38
Conversation
qayshp
left a comment
There was a problem hiding this comment.
Self-review focused on migration from the older Serve-plus-Funnel instructions.
Validation update
No files, application data, device name, tailnet hostname, or public URL were exposed in this validation record. This tailnet was already authorized for Funnel, so no approval page appeared and there was no approval-screen screenshot to capture. |
|
Validation supersession: the live Funnel route and cleanup now pass. A temporary fixed-text loopback endpoint was exposed with the documented HTTPS Funnel command, the exact marker was received through the public route, Funnel status showed the temporary route, and the route and endpoint were then removed. Serve and Funnel both returned to their original empty state. This validates routing and cleanup rather than the full BlueBubbles application. The tailnet was already authorized, so the first-run approval page and policy change were not exercised. No identifying hostname, URL, device, or tailnet details are included. |
Summary
Why
The guide was written for an older Tailscale workflow. It required users to configure certificates and the Funnel policy before running the CLI, started both Serve and Funnel on the same public port, and then checked Serve status. Current Tailscale versions configure the certificate and default Funnel node attribute during first-run approval, and Funnel has its own persistent background and status commands.
The root cause is upstream CLI and admin-console evolution since the guide was authored.
User impact
Users now have one command to expose BlueBubbles, see the approval step where it actually occurs, and verify the public route with the matching Funnel status command. Users migrating from the older guide are told how to inspect existing Serve and Funnel state without removing unrelated routes. The manual policy path remains available when automatic approval fails without making every user edit access controls up front.
Validation
git diff --checkfunnel --bg,--https, andfunnel statusagainst the locally installed Tailscale 1.98.9 CLIorigin/developmentstill uses port1234by default and labels the option Dynamic DNS / Custom URL1234was exposed with the documented HTTPS Funnel command, and the exact marker was received through the public routeNo hostname, public URL, device name, tailnet identifier, application data, or files are included in the validation record.
Limitations
Fixes #28