Skip to content

Sharing a Public Demo Link

Need to show a work-in-progress to a client? mdocker share makes a locally running project publicly reachable through a Cloudflare quick tunnel (trycloudflare.com) — no Cloudflare account required.

install cloudflared
brew install cloudflared

Only share start needs cloudflared; stop and ls work without it.

mdocker share
mdocker share aurora # shortcut for `share start`; prints the public URL
mdocker share ls # list active tunnels
mdocker share stop aurora # stop this project's tunnel(s)
mdocker share stop aurora --all

share start is idempotent — if a tunnel is already live it just re-prints the URL. By default it shares the project’s first hostname; pass a specific host to share a different one. The tunnel origin is auto-probed: the Traefik IP on :443 first (for OrbStack, where host :443 is not forwarded), falling back to 127.0.0.1:443 for Docker Desktop.

Each tunnel is a nohup background cloudflared process. Its state and log live under ~/.config/multi-docker/state/tunnels/<project>__<host>.{json,log} — these are ephemeral runtime artefacts, not part of registry.json. share ls self-heals by pruning entries whose process is gone.

Stopping or removing a project cleans up its tunnels automatically: mdocker down <name> and mdocker rm <name> both stop that project’s tunnels. (edge restart and a plain project restart do not.)