Skip to content

feat: add Quick Tunnel support for instant public URLs#924

Closed
lbajsarowicz wants to merge 12 commits into
wardenenv:mainfrom
lbajsarowicz:feature/cloudflared-quick-tunnel
Closed

feat: add Quick Tunnel support for instant public URLs#924
lbajsarowicz wants to merge 12 commits into
wardenenv:mainfrom
lbajsarowicz:feature/cloudflared-quick-tunnel

Conversation

@lbajsarowicz
Copy link
Copy Markdown
Contributor

@lbajsarowicz lbajsarowicz commented Mar 23, 2026

Summary

Adds Quick Tunnel support on top of the Cloudflare Tunnel integration (#923). Quick Tunnels provide instant public URLs without requiring a Cloudflare account, custom domain, or any setup.

  • New WARDEN_QUICK_TUNNEL=1 project-level toggle adds a cloudflared container to the project compose
  • Routes through varnish when WARDEN_VARNISH=1, otherwise through nginx directly
  • New warden cf quick command extracts and displays the random *.trycloudflare.com URL
  • CHANGELOG entry added

How it works

Internet → Cloudflare Edge → quick-tunnel container → varnish/nginx → php-fpm

No login, no credentials, no DNS configuration. Just:

# Add to project .env
WARDEN_QUICK_TUNNEL=1

# Start the project
warden env up

# Get the URL
warden cf quick

Depends on

Related PRs

Test plan

  • Add WARDEN_QUICK_TUNNEL=1 to a project .env, run warden env up
  • Verify quick-tunnel container is running: warden env ps
  • Verify warden cf quick shows the *.trycloudflare.com URL
  • With WARDEN_VARNISH=1, verify cloudflared routes to varnish
  • Without varnish, verify cloudflared routes to nginx
  • Without WARDEN_QUICK_TUNNEL, verify no extra container is added

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds Cloudflare Tunnel/Quick Tunnel capabilities to Warden to expose local environments publicly, including compose partials/services and new warden cf subcommands for tunnel lifecycle and Quick Tunnel URL discovery.

Changes:

  • Add cloudflared global service and config regeneration for Cloudflare Tunnel ingress routing.
  • Add project-level Quick Tunnel compose partials (nginx vs varnish upstream) behind WARDEN_QUICK_TUNNEL=1.
  • Introduce warden cf command group, including warden cf quick and update CHANGELOG.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
utils/core.sh Adds regenerateCloudflaredConfig for generating cloudflared ingress config and restarting the container.
environments/includes/quick-tunnel.base.yml Introduces quick-tunnel service using cloudflared Quick Tunnel to nginx.
environments/includes/quick-tunnel-varnish.base.yml Overrides Quick Tunnel upstream to route via varnish when enabled.
environments/includes/nginx-public.base.yml Adds Traefik labels to route TRAEFIK_PUBLIC_DOMAIN and mark domain for cloudflared config generation.
docker/docker-compose.cloudflared.yml Defines the global cloudflared service that runs with a generated config.
commands/svc.cmd Conditionally includes the cloudflared compose file and triggers config regeneration on svc up.
commands/env.cmd Conditionally includes new compose partials and triggers cloudflared config regeneration on env lifecycle actions.
commands/cf.help Adds help/usage text for new warden cf subcommands including Quick Tunnel.
commands/cf.cmd Implements warden cf subcommands (login/create/delete/status/update/logout/quick).
CHANGELOG.md Adds UNRELEASED entries for Cloudflare Tunnel + Quick Tunnel.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread commands/env.cmd
Comment thread commands/svc.cmd
Comment thread utils/core.sh
Comment thread commands/cf.cmd
Comment thread commands/env.cmd
Comment thread commands/env.cmd
@lbajsarowicz lbajsarowicz force-pushed the feature/cloudflared-quick-tunnel branch from 53e4099 to 2c6e0e8 Compare March 23, 2026 14:57
@lbajsarowicz
Copy link
Copy Markdown
Contributor Author

Reopening as a PR within the fork to properly show diff against #923's branch.

@github-project-automation github-project-automation Bot moved this to ✅ Done in Warden Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants