@flynetdev/tunnel
v0.2.0
Published
Flynet dev tunnel — `flynet make` brings up your branded tunnel ({bird}.local.make.flynet.org) on the Flynet sish relay, pointing at your localhost.
Downloads
341
Maintainers
Readme
@flynetdev/tunnel
The Flynet dev tunnel. flynet dev brings up your branded dev tunnel — a stable
{bird}.local.make.flynet.org URL pointing at your localhost, for OAuth redirects and live
testing. It's a thin wrapper around ssh -R to the Flynet relay, so there's nothing to install
beyond Node — ssh already ships with macOS/Linux. No Cloudflare, no account, no authtoken.
Install
npm i -g @flynetdev/tunnel # then: flynet dev
# or, no install:
npx @flynetdev/tunnel devRequires Node ≥ 18 and an ssh client.
Usage
export FLYNET_API_KEY=bb_live_... # your maker API key (Make dashboard, or your redeem prompt)
flynet dev --port 3000 # expose localhost:3000The CLI calls the Make backend (POST /api/maker/tunnel), which authenticates your key, derives
your branded subdomain (a deterministic bird name from your account email), and returns the
relay's shared tunnel key. The CLI then runs ssh -R to the relay, so your localhost is served at
https://{bird}.local.make.flynet.org — a real HTTPS origin that clears the edge's localhost
block. The relay's host key is pinned, so there's no trust-on-first-use prompt.
| Env | Default | Purpose |
|---|---|---|
| FLYNET_API_KEY | — (required) | your maker API key; authenticates the tunnel request |
| FLYNET_MAKE_URL | https://make.flynet.org | backend base (override for local/staging) |
| PORT | 3000 | local port to expose (or pass --port) |
How it works
flynet dev --port 3000
└─ POST $FLYNET_MAKE_URL/api/maker/tunnel (X-API-Key, {port})
→ { url: "https://<bird>.local.make.flynet.org", bird, sshKey, port }
└─ ssh -R <bird>:80:localhost:3000 -p 2222 local.make.flynet.orgOffline / break-glass
Skip the backend and tunnel directly with an explicit bird + key:
flynet dev --bird <name> --key /path/to/tunnel-key --port 3000