tunnelctl is the in-house tunneling daemon for Nubeo developers. Drop an encrypted public URL on top of any localhost service in under 200 ms — share with the team, hit it from a phone, get the QA crew unblocked. Zero accounts. Zero config. Free for the whole org.
tunnelctl deliberately ships less than ngrok. No paid plans, no feature creep — just the one job done well. Spin up an HTTPS tunnel against a localhost port, share the URL, ship the demo. Anything fancier we add only when an actual Nubeo project asks for it.
One command spins up a TLS-terminated tunnel pointing at any local port. No signup, no DNS, no waiting. Ship a working URL before your coffee finishes brewing.
You choose the slug — every tunnel lives at <slug>.tunnelctl.eu. The same
name across restarts means stable URLs for QA, webhook callbacks, and shared previews.
TLS 1.3 with ChaCha20-Poly1305 between client and edge. Optional basic-auth gate or IP allowlist if you're exposing a staging build to a vendor.
One static binary. No Docker, no systemd hoops, no language runtime. macOS (Intel + Apple
Silicon), Linux x86_64 / arm64, Windows. Just drop it in your $PATH.
Install once. Authenticate against your Nubeo SSO once. Tunnel forever. The full reference — every flag, every config knob, every edge case — lives at docs.tunnelctl.eu.
Single binary, zero deps. Pick your distro in the hero — the snippet below switches with it. Same data, just annotated for context.
SSO via Nubeo's identity provider. Browser device flow — no copy-pasting tokens, no editing TOML files in a panic.
Pick a slug, point at a port, go. Host:port form lets you target localhost, an explicit
IPv6, or anything else your dev server listens on. -d backgrounds it.
We're being upfront about scope. Below is what's in the box right now and what's on the backlog. If something on the right side blocks your work, file an issue at track.nubeo.eu and we'll bump it.
<slug>.tunnelctl.eu3000), explicit host (localhost:5173), IPv6 ([::1]:5173)-d)tunnelctl logs, stop with tunnelctl down--host-header-rewrite for dev servers that strict-match
the Host header (Vite, webpack-dev-server)*.tunnelctl.eu — no api.acme.dev yetDrop a public URL on top of localhost in the next 30 seconds. No credit card. No marketing email. No quota. Just a daemon and a glowing terminal — courtesy of Nubeo Engineering.
$ brew tap tunnelctl/tunnelctl https://git.piblade.net/tunnelctl/homebrew-tunnelctl.git
$ brew install tunnelctl