Como expor localhost numa URL HTTPS pública?
Rode localhostly 3000 e o seu app local responde num endereço HTTPS aleatório, como https://brave-amber-fox.localhostly.iblabs.io. O agente faz uma conexão de saída, então funciona atrás de NAT sem abrir porta no roteador. Uma conta gratuita tem 2 túneis, 150 requisições por minuto e 25 GiB de tráfego por mês.
Pegue seu token Baixe o localhostly
$ localhostly 3000 https://brave-amber-fox.localhostly.iblabs.io → http://127.0.0.1:3000 Ctrl+C to stop. Requests: 21:14:03 GET / 200 12ms 21:14:05 POST /api/webhook 201 31ms
Como funciona?
O localhostly é um túnel localhost. O agente localhostly no seu computador abre uma conexão WebSocket com o servidor do localhostly. Quando alguém abre a sua URL, o servidor lê o nome no endereço, manda a requisição por essa conexão, e o agente a reproduz na sua porta local e devolve a resposta em stream.
- Pegue um token. Digite seu e-mail no formulário de cadastro. O token aparece na página; não há e-mail de confirmação.
- Salve o token.
localhostly login <token>grava em~/.localhostly/config.json, legível só pelo seu usuário. - Abra o túnel.
localhostly 3000. Para mandar outro endereço e outroHostao seu app:localhostly http 3000 --host meuapp.test:3000.
O seu app recebe a requisição como o visitante a mandou, com X-Forwarded-For, X-Forwarded-Proto: https e X-Forwarded-Host. Várias requisições passam ao mesmo tempo pela mesma conexão.
É grátis?
Sim. Não há plano pago nem cartão: a conta pede só um e-mail. Cada conta mantém 2 túneis abertos, atende 150 requisições por minuto e transfere 25 GiB por mês. Passado um limite, o visitante recebe uma página 429 que diz qual limite estourou e quando o túnel volta.
Dá para testar webhooks?
Sim. A chamada de webhook não é navegador, então pula a página de aviso e chega direto ao seu app. Cole https://<nome>.localhostly.iblabs.io/<seu caminho> nas configurações de webhook do provedor, e cada chamada aparece no seu terminal com método, caminho, status e tempo.
Se o agente perder a conexão, ele reconecta e recupera a mesma URL: uma queda curta não obriga a cadastrar o webhook de novo. Em quedas mais longas que 10 minutos o nome pode mudar.
É seguro abrir um túnel?
Use --password e todo visitante precisa digitar a senha; sem valor, o localhostly cria uma senha de 12 caracteres e a mostra só no seu terminal. O seu app nunca recebe o cabeçalho Authorization do visitante. Sem senha, qualquer pessoa com a URL chega ao endereço que você expôs: 127.0.0.1:<porta>, ou o do --host.
- O navegador vê uma página de aviso na primeira visita, dizendo que o site roda no computador de alguém. Clientes de API não a veem, nem a requisição com o cabeçalho
X-Localhostly-Skip-Warning. - O servidor registra método, caminho sem a query, status, tempo, nome do túnel e conta. Nunca registra o corpo da requisição nem os cookies.
- O HTTPS termina no balanceador do localhostly, então o servidor do localhostly trata o seu tráfego. Não é criptografia de ponta a ponta.
- Do nosso lado, o seu token fica guardado só como hash SHA-256.
Como manter o túnel no ar?
Deixe o localhostly rodando num terminal. Se a conexão cair, o agente reconecta sozinho, esperando 1 segundo e dobrando até 60 segundos, e recupera a mesma URL. Em quedas mais longas que 10 minutos o nome pode mudar. Ctrl+C fecha o túnel.
Para deixar o túnel sempre no ar, localhostly service install 3000 roda o túnel como serviço do sistema (systemd no Linux, launchd no macOS, serviço do Windows). Ele reconecta sozinho e pede o mesmo nome depois de reiniciar; localhostly service uninstall o remove.
Download
-
Windows
Baixar para Windows.exede 64 bits. Rode num terminal:localhostly 3000.localhostly-win-x64.exe -
macOS
Apple silicon (arm64) e Intel (x64).
Baixar para macOSlocalhostly-macos-arm64localhostly-macos-x64 -
Linux
Binário x64.
Baixar para Linuxchmod +x localhostlye rode.localhostly-linux-x64localhostly-linux-arm64 -
npm
Copiadonpm i -g localhostly(Node.js 24 ou mais novo).
O Windows e o macOS avisam na primeira vez que você roda um programa sem assinatura. No Windows, escolha Mais informações e depois Executar assim mesmo; no macOS, clique com o botão direito no arquivo e escolha Abrir.
Pegue seu token
Seu token:lh_…. Copie agora: guardamos só um hash e não conseguimos mostrá-lo de novo. Depois, rode localhostly login <token>.
Digite um e-mail válido.
Este e-mail já tem conta. Use o token que você recebeu.
Muitos cadastros desta rede. Tente de novo em uma hora.