- Comparte la experiencia de configurar una web app en desarrollo para poder acceder con una dirección simple como
appname.localhost, sin tener que recordar puertos como localhost:4333
- Al usar este sistema, el acceso a web apps locales se vuelve mucho más intuitivo y limpio
- Cada app se ejecuta en un puerto único como un daemon de
launchd
- En el archivo
/etc/hosts, appname.localhost se redirige a 127.0.0.1
- Ejemplo:
127.0.0.1 inclouds.localhost
- Mediante Caddy, ese dominio se proxifica hacia el puerto adecuado
Ejemplo de configuración de Caddy
inclouds.localhost {
reverse_proxy localhost:5050
tls internal
encode gzip zstd
}
- Para cada dominio
.localhost, se escribe en el Caddyfile la configuración de proxy hacia su puerto correspondiente
- También incluye certificados TLS internos y soporte de compresión
Ideas para mejorar a futuro
- Actualmente hay que editar manualmente tres archivos (
/etc/hosts, Caddyfile y plist de launchd)
- A futuro, el objetivo es crear una herramienta de automatización para instalar o eliminar apps en dominios
.localhost con un solo comando
Actualización
- Cristóbal sugirió un comando basado en dnsmasq, haciendo este proceso más sencillo
- La idea central es la siguiente:
- Redirigir todos los
*.localhost a 127.0.0.1
- Configurar un servidor que haga reverse proxy desde
127.0.0.1 hacia un puerto específico
Configurar la redirección con dnsmasq
Configurar reverse proxy con Caddy y el script localhost
Probar cómo funciona en la práctica
2 comentarios
Yo usaría un DNS wildcard como NIP.IO a menos que no se pueda acceder desde una red externa.
Opiniones de Hacker News
Los navegadores ofrecen un contexto seguro para el dominio
.localhost.internal, aprobado recientementeEl fragmento de configuración de nginx para desarrollo local es sencillo
Chrome y Firefox resuelven por defecto todos los dominios
<name>.localhostcomolocalhostEl proyecto Localias es útil para el desarrollo web local
.localdesde otros dispositivos de la red/etc/hostsLos subdominios de
.localhostfuncionan por defecto en Linux, OpenBSD y otros sistemas/etc/hostsSi usas Caddy, se recomienda usar un dominio comprado y el desafío DNS-01
Algunas personas también usan dominios vanity en redes personales
internal.para la configuración de la red internaSe puede asignar una dirección IP separada a cada aplicación alojada localmente
127.0.0/24En sistemas Linux, funciona por defecto mediante
systemd-resolved