delonix net tunnel

Expõe uma porta local à internet pública via pinggy/ngrok/cloudflare (`kind: Tunnel`).

Exposes a local port to the public internet via pinggy/ngrok/cloudflare (`kind: Tunnel`).

Faz UMA coisa: leva tráfego da internet pública até UMA porta local — sem conta, sem IP público, sem configurar o router. Junta-se ao httproute apontando --local-port para a porta onde o proxy L7 escuta, e o routing por Host do lado de lá continua a decidir para que container vai cada pedido — uma só URL pública, vários backends. Três providers, cada um o binário/mecanismo REAL desse serviço (nunca simulado): pinggy (zero binário extra — ssh puro, já uma dependência do projecto), ngrok (precisa do agente ngrok no PATH; a URL pública sai da API local do próprio agente) e cloudflare (precisa de cloudflared; por agora só o quick-tunnel efémero *.trycloudflare.com, sem conta — um tunnel NOMEADO com domínio próprio precisa da API do Cloudflare, ainda por implementar).

Does ONE thing: carries traffic from the public internet down to ONE local port — no account, no public IP, no router config. Pairs with httproute by pointing --local-port at the port the L7 proxy listens on, and Host-based routing on the other end still decides which container each request goes to — one public URL, several backends. Three providers, each the REAL binary/mechanism of that service (never simulated): pinggy (zero extra binary — plain ssh, already a project dependency), ngrok (needs the ngrok agent on PATH; the public URL comes from the agent's own local API) and cloudflare (needs cloudflared; for now only the ephemeral quick-tunnel *.trycloudflare.com, no account — a NAMED tunnel with its own domain needs the Cloudflare API, not implemented yet).

Usage: dlx net tunnel [OPTIONS] <COMMAND>

Commands:
  apply     Apply the `kind: Tunnel` documents of a manifest (idempotent)
  expose    One-shot expose of a local port, no manifest needed
  ls        List tunnels (state + public URL)
  describe  Human-readable detail of one tunnel
  rm        Stop and remove a tunnel
  help      Print this message or the help of the given subcommand(s)

Options:
      --l18n <en|pt>  Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
  -h, --help          Print help

tunnel apply

Apply the kind: Tunnel documents of a manifest (idempotent)

Usage: dlx net tunnel apply [OPTIONS]

Options:
  -f, --file <FILE>   
      --l18n <en|pt>  Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
  -h, --help          Print help

Exemplos

Declarar o túnel num manifesto kind: Tunnel
delonix net tunnel apply -f tunel.yaml

tunnel expose

One-shot expose of a local port, no manifest needed

Usage: dlx net tunnel expose [OPTIONS] --provider <PROVIDER> --local-port <LOCAL_PORT>

Options:
      --l18n <en|pt>                 Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
      --name <NAME>                  Name (default: `tunnel-<port>`)
      --provider <PROVIDER>          `pinggy` | `ngrok` | `cloudflare`
      --local-port <LOCAL_PORT>      
      --hostname <HOSTNAME>          
      --token <TOKEN>                
      --token-secret <TOKEN_SECRET>  
  -h, --help                         Print help

Validado ao vivo nesta mesma sessão: tráfego HTTPS real da internet chegou a um servidor local através do tunnel (HTTP 200) usando exactamente este comando.

Exemplos

Expor uma porta local sem escrever manifesto (pinggy, grátis, efémero)
delonix net tunnel expose --name demo --provider pinggy --local-port 8080
tunnel/demo: running — https://oxipg-197-148-40-67.free.pinggy.net

tunnel ls

List tunnels (state + public URL)

Usage: dlx net tunnel ls [OPTIONS]

Options:
      --l18n <en|pt>  Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
  -h, --help          Print help

Exemplos

Listar túneis (estado + URL pública)
delonix net tunnel ls
NAME    PROVIDER   LOCAL PORT   PUBLIC URL                                    STATUS    UPTIME
test1   pinggy          18234   https://oxipg-197-148-40-67.free.pinggy.net   Running   Up 34 seconds

tunnel describe

Human-readable detail of one tunnel

Usage: dlx net tunnel describe [OPTIONS] <NAME>

Arguments:
  <NAME>  

Options:
      --l18n <en|pt>  Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
  -h, --help          Print help

Exemplos

Detalhe de um túnel
delonix net tunnel describe demo

tunnel rm

Stop and remove a tunnel

Usage: dlx net tunnel rm [OPTIONS] <NAME>

Arguments:
  <NAME>  

Options:
      --l18n <en|pt>  Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
  -h, --help          Print help

Exemplos

Parar e remover (mata o processo agente a sério)
delonix net tunnel rm demo
tunnel/demo: removed

LaboratórioLab

Uma porta local, uma URL pública — sem conta, sem router.

delonix net tunnel expose --provider pinggy --local-port 8080
delonix net tunnel ls

One local port, one public URL — no account, no router config.

delonix net tunnel expose --provider pinggy --local-port 8080
delonix net tunnel ls

DesafioChallenge

Aponta o --local-port do tunnel para a porta onde o proxy L7 (httproute) escuta, e confirma que a MESMA URL pública consegue servir vários containers backend diferentes, decididos pelo Host do pedido.

Point the tunnel's --local-port at the port the L7 proxy (httproute) listens on, and confirm the SAME public URL can serve several different backend containers, decided by the request's Host.