feat(cli): make connect-url --relay a full anywhere pairing link

- --relay links now carry both routes: direct LAN plus relay fallback,
  matching the UI's Anywhere pairing; devices prefer the direct route
- pairing sessions created by the CLI are marked with usesRelay, and the
  server reconciles relay demand on a timer, so a headless instance
  brings the relay up on its own after connect-url --relay
- warn with LAN_UNREACHABLE when the link's direct route points at
  loopback and other devices cannot use it
- document the --relay flow and the --lan binding caveat in Connect a
  Device and Remote Instances across all locales
This commit is contained in:
Bohdan Triapitsyn
2026-07-10 18:29:15 +03:00
parent de92b8fef4
commit 6ec1797583
21 changed files with 182 additions and 87 deletions
@@ -40,13 +40,25 @@ O mesmo dispositivo físico mantém uma única entrada mesmo que entre de novo m
## Conectar pela linha de comando
Se o servidor roda headless (sem UI aberta), crie um link de conexão a partir de um terminal nessa máquina:
Se o servidor roda headless (sem UI aberta), crie um link de conexão a partir de um terminal nessa máquina.
Para um dispositivo na mesma rede:
```bash
openchamber connect-url --port 3000 --qr
```
O link e o código QR impressos funcionam exatamente como os do diálogo de configurações.
Para um dispositivo que deve conectar de **qualquer lugar** — o equivalente a escolher **Em qualquer lugar** no diálogo:
```bash
openchamber connect-url --relay --qr
```
Um link com `--relay` carrega as duas rotas, igual ao diálogo: o dispositivo conecta diretamente pela sua rede local quando consegue alcançar o servidor e recorre ao [Private Relay](/pt-br/private-relay/) quando está fora. O relay inicia sozinho: uma instância em execução capta o link em até um minuto; uma parada, na próxima vez que iniciar.
> A rota direta só funciona se o servidor de fato escutar na sua rede. Por padrão, o OpenChamber escuta apenas na própria máquina — inicie-o com `--lan` para torná-lo alcançável pelo Wi-Fi. O comando avisa (`[LAN_UNREACHABLE]`) quando a rota direta do link não será utilizável de outros dispositivos; um link com `--relay` ainda funciona nesse caso, só que sempre pelo relay.
O link e o código QR impressos funcionam exatamente como os do diálogo de configurações — de uso único, com expiração e revogáveis.
## Relacionado