- Partage d’une configuration permettant d’accéder à une web app en développement via une adresse simple comme
appname.localhost, sans avoir à mémoriser un port comme localhost:4333
- Avec ce système, l’accès aux applications web locales devient bien plus intuitif et propre
- Chaque application s’exécute sur un port dédié via un démon
launchd
- Dans le fichier
/etc/hosts, appname.localhost est redirigé vers 127.0.0.1
- Exemple :
127.0.0.1 inclouds.localhost
- Caddy sert à proxyfier ce domaine vers le port approprié
Exemple de configuration Caddy
inclouds.localhost {
reverse_proxy localhost:5050
tls internal
encode gzip zstd
}
- Pour chaque domaine en
.localhost, une règle de proxy vers le port correspondant est ajoutée dans le Caddyfile
- La configuration inclut aussi des certificats TLS internes et la prise en charge de la compression
Idées d’amélioration futures
- À l’heure actuelle, il faut encore modifier manuellement trois fichiers (
/etc/hosts, Caddyfile et plist launchd)
- L’objectif est à terme de créer un outil d’automatisation pour installer ou supprimer une app sur un domaine
.localhost avec une seule commande
Mise à jour
- Cristóbal a proposé une commande basée sur dnsmasq, ce qui simplifie encore le processus
- L’idée centrale est la suivante :
- rediriger tous les
*.localhost vers 127.0.0.1
- configurer un serveur qui effectue un reverse proxy depuis
127.0.0.1 vers un port précis
Configurer la redirection avec dnsmasq
Configurer le reverse proxy avec Caddy et un script localhost
Test du fonctionnement réel
2 commentaires
Personnellement, tant qu’il n’y a pas de contrainte empêchant l’accès depuis un réseau externe, j’utiliserais un DNS wildcard comme NIP.IO.
Avis sur Hacker News
Les navigateurs fournissent un contexte sécurisé pour le domaine
.localhost.internal, récemment approuvéL’extrait de configuration nginx pour le développement local est simple
Chrome et Firefox résolvent par défaut tous les domaines
<name>.localhostverslocalhostLe projet Localias est utile pour le développement web local
.localdepuis d’autres appareils du réseau/etc/hostsLes sous-domaines de
.localhostfonctionnent par défaut sur Linux, OpenBSD, etc./etc/hostsSi vous utilisez Caddy, il est recommandé d’employer un domaine acheté et le challenge DNS-01
Certaines personnes utilisent aussi des domaines vanity sur leur réseau personnel
internal.pour la configuration du réseau interneIl est possible d’attribuer une adresse IP distincte à chaque application hébergée localement
127.0.0/24Sur les systèmes Linux, cela fonctionne par défaut via
systemd-resolved