- Compartilhamento de uma experiência de configuração para acessar web apps em desenvolvimento com endereços simples como
appname.localhost, sem precisar memorizar portas como localhost:4333
- Ao usar esse sistema, o acesso a web apps locais fica muito mais intuitivo e organizado
- Cada app é executado em uma porta exclusiva como um daemon do
launchd
- No arquivo
/etc/hosts, appname.localhost é redirecionado para 127.0.0.1
- Exemplo:
127.0.0.1 inclouds.localhost
- O Caddy faz o proxy desse domínio para a porta apropriada
Exemplo de configuração do Caddy
inclouds.localhost {
reverse_proxy localhost:5050
tls internal
encode gzip zstd
}
- Para cada domínio
.localhost, escreve-se no Caddyfile a configuração de proxy para a porta correspondente
- Também inclui certificado TLS interno e suporte a compressão
Ideias de melhorias futuras
- Atualmente, ainda é preciso editar manualmente três arquivos (
/etc/hosts, Caddyfile e plist do launchd)
- O objetivo no futuro é criar uma ferramenta de automação que instale/remova apps em domínios
.localhost com um único comando
Atualização
- Cristóbal sugeriu um comando baseado em dnsmasq, tornando esse processo mais simples
- A ideia principal é a seguinte:
- Redirecionar todos os
*.localhost para 127.0.0.1
- Configurar um servidor em
127.0.0.1 para fazer reverse proxy para portas específicas
Configurando o redirecionamento com dnsmasq
Configurando reverse proxy com Caddy e o script localhost
Teste de funcionamento real
2 comentários
A menos que não seja possível acessar a rede externa, eu usaria um Wildcard DNS como o NIP.IO.
Comentários do Hacker News
Os navegadores fornecem um contexto seguro para o domínio
.localhost.internal, aprovado recentementeO snippet de configuração do nginx para desenvolvimento local é simples
Chrome e Firefox resolvem por padrão todo domínio
<name>.localhostpara localhostO projeto Localias é útil para desenvolvimento web local
.localem outros dispositivos da rede/etc/hostsOs subdomínios de
.localhostfuncionam por padrão em Linux, OpenBSD etc./etc/hostsSe você usa Caddy, é melhor usar um domínio comprado e o desafio DNS-01
Algumas pessoas também usam domínios vanity em redes pessoais
internal.na configuração da rede internaÉ possível atribuir um endereço IP separado para cada app hospedado localmente
127.0.0/24Em sistemas Linux, isso funciona por padrão por meio do
systemd-resolved