You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Feature Request] Share a locally running app on a public URL with app.run(tunnel=True) #4029
Sharing an app that runs locally (with a teammate, on a phone, for a quick demo) currently means deploying it or setting up ngrok or a similar tool yourself.
Proposal: add a tunnel option to app.run (and a DASH_TUNNEL env var) that opens a Cloudflare quick tunnel and logs a public trycloudflare.com URL next to the local one. Quick tunnels need no account or login.
Suggested implementation: follow LangChain's --tunnel flag for langgraph dev, which does the same thing with a Cloudflare quick tunnel.
How it works, from the JS CLI: startCloudflareTunnel runs cloudflared tunnel --url http://localhost:<port> and reads the trycloudflare.com URL from its output. downloadCloudflared fetches the binary from Cloudflare's GitHub releases and caches it.
Why Cloudflare and not ngrok: ngrok needs a free account and an authtoken before it will start a tunnel, and has not allowed anonymous tunnels since 2023. Cloudflare quick tunnels are the mainstream option that works with no signup, which is also why LangChain uses them. ngrok's free tier does give one fixed domain (quick tunnel URLs change on every start), so it could be added later as an option for people who already have a token.
For Dash:
Use cloudflared from the PATH, or download it once if missing.
The URL stays the same across hot reloads.
For development only. Anyone with the URL can reach the app, so it should warn when debug is on.
What are clouflare's terms of service if the tunnel isn't associated with a person? I think we will need to review whether we can recommend this to our users (especially enterprise users) given that Cloudflare terminates TLS on their end and can introspect all traffic. A lot of Dash apps in development and testing still deal with sensitive data sources.
I suspect one of the open source alternatives like localtunnel will give us more flexibility when it comes to securing the connection end to end.
Discussed between the Dash maintainers and we don't think the current implementation is secure enough to recommend to Dash developers in Enterprise settings. We're going to look into adding a docs page to recommend it and investigate adding a tunnel relay server in Plotly Cloud + Dash Enterprise so we can provide end-to-end encryption.
Activity
robertclaus commentedon Oct 1, 2026
What are clouflare's terms of service if the tunnel isn't associated with a person? I think we will need to review whether we can recommend this to our users (especially enterprise users) given that Cloudflare terminates TLS on their end and can introspect all traffic. A lot of Dash apps in development and testing still deal with sensitive data sources.
I suspect one of the open source alternatives like localtunnel will give us more flexibility when it comes to securing the connection end to end.
ndrezn commentedon Oct 1, 2026
For sure absolutely game for using an OSS alternative!
robertclaus commentedon Oct 1, 2026
Discussed between the Dash maintainers and we don't think the current implementation is secure enough to recommend to Dash developers in Enterprise settings. We're going to look into adding a docs page to recommend it and investigate adding a tunnel relay server in Plotly Cloud + Dash Enterprise so we can provide end-to-end encryption.
ndrezn commentedon Oct 1, 2026
Sounds good! Tunnel relay server would be really neat!