Tools: Managing Multiple Cloudflare Tunnel Accounts with Cfmux - Expert Insights
The Problem Wasn't Tunneling
Enter Cfmux
The Core Idea
The Difference Sounds Small...
One Important Design Decision
The MVP Was Extremely Small
One Thing That Surprised Me
Why I Still Respect cloudflared
Installation
GitHub
Final Thoughts Cfmux is a Golang CLI wrapper for cloudflared that helps manage multiple Cloudflare Tunnel accounts using isolated profiles, runtime separation, and systemd integration. Most infrastructure tools are born from one thing:
Frustration. Cfmux started exactly the same way. For a long time, I used Cloudflare Tunnel through cloudflared for almost everything: cloudflared is great. It is lightweight, stable, simple to deploy, and probably one of the easiest ways to expose local services securely without dealing with public IPs or complicated reverse proxy setups. But eventually I hit a workflow problem. Not a technical limitation. A workflow limitation. The problem appeared when I started managing multiple Cloudflare accounts. At first it was manageable. Then slowly things became messy. Credential confusion.Wrong account usage.Mixed runtime state.Configs everywhere. And I realized something important: I was manually building my own management layer around cloudflared anyway. So eventually I decided to formalize it. Cfmux is a lightweight wrapper around cloudflared. It still relies entirely on the official Cloudflare tooling underneath. The goal is actually very small: make multi-account tunnel workflows cleaner and isolated. No magic networking layer.No custom tunnel protocol.No attempt to reinvent Cloudflare Tunnel. Just workflow management. Instead of relying on one global runtime state, Cfmux isolates everything into profiles. Each profile has isolated: So switching contexts becomes much safer. But in practice it changes the workflow completely. Instead of constantly doing: Because the active profile already knows: It removes a surprising amount of friction. From the beginning, I intentionally avoided turning this into: “another overengineered dashboard project.” Very infrastructure-oriented. And honestly, I think boring stacks are underrated for infra tooling. The first version only focused on four things: No web dashboard.No database.
No Kubernetes operator. Just practical tooling. The deeper I went into this project, the more I realized: infrastructure tools live or die from reliability. So instead of aggressively adding functionality, I started focusing heavily on testing. Especially integration testing. Because infrastructure software stops being “just code” once people trust it with production environments. One thing I want to make very clear: Cfmux exists because of a workflow gap. Not because cloudflared is bad. Actually the opposite. cloudflared is good enough that I wanted a better management experience around it instead of replacing it entirely. If Cloudflare eventually adds proper native multi-account workflow management someday, that would be great. Cfmux was never intended to fight the ecosystem. It was built to make one specific workflow cleaner. Currently installation/update is just: GitHub: https://github.com/ExiroStudio/cfmux My GitHub: https://github.com/ExiroStudio One thing I’ve learned from building this project: Some of the best software ideas are not revolutionary. Sometimes they are just: “this workflow annoys me enough that I should fix it properly.” And weirdly enough, those projects often become the most useful ones. Especially when you end up using them yourself every single day. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse