- Erfahrungsbericht darüber, wie sich für Webapps in der Entwicklung der Zugriff über einfache Adressen wie
appname.localhost einrichten lässt, ohne sich Ports wie localhost:4333 merken zu müssen
- Mit diesem System wird der Zugriff auf lokale Webapps deutlich intuitiver und aufgeräumter
- Jede App läuft auf einem eigenen Port als
launchd-Daemon
- In der Datei
/etc/hosts wird appname.localhost auf 127.0.0.1 umgeleitet
- Beispiel:
127.0.0.1 inclouds.localhost
- Über Caddy wird die Domain an den passenden Port weitergeleitet
Beispiel für eine Caddy-Konfiguration
inclouds.localhost {
reverse_proxy localhost:5050
tls internal
encode gzip zstd
}
- Für jede
.localhost-Domain wird im Caddyfile eine Proxy-Konfiguration auf den entsprechenden Port angelegt
- Enthalten sind auch interne TLS-Zertifikate und Komprimierungsunterstützung
Ideen für künftige Verbesserungen
- Derzeit müssen drei Dateien (
/etc/hosts, Caddyfile, launchd plist) manuell bearbeitet werden
- Ziel ist künftig ein Automatisierungstool, das Apps mit einem einzigen Befehl unter einer
.localhost-Domain installiert oder entfernt
Update
- Cristóbal schlug einen auf dnsmasq basierenden Befehl vor, der den Prozess weiter vereinfacht
- Die Kernidee ist wie folgt:
*.localhost wird vollständig auf 127.0.0.1 umgeleitet
- Es wird ein Server eingerichtet, der auf
127.0.0.1 Reverse Proxying auf bestimmte Ports ausführt
Umleitung mit dnsmasq einrichten
Reverse Proxying mit Caddy und dem localhost-Skript einrichten
Test des tatsächlichen Verhaltens
2 Kommentare
Wenn ich nicht vom Zugriff auf externe Netze ausgeschlossen bin, würde ich eher Wildcard-DNS wie NIP.IO verwenden.
Hacker-News-Kommentare
Browser stellen für
.localhost-Domains einen sicheren Kontext bereit.internal-Domain kann verwendet werdenDas nginx-Konfigurations-Snippet für lokale Entwicklung ist einfach
Chrome und Firefox lösen standardmäßig alle
<name>.localhost-Domains zu localhost aufDas Projekt Localias ist für lokale Webentwicklung nützlich
.local-Domain-Aliasse auf anderen Geräten im Netzwerk zu verwenden/etc/hostsmuss nicht manuell bearbeitet werdenSubdomains von
.localhostfunktionieren unter Linux, OpenBSD usw. standardmäßig/etc/hostseingetragen werdenWenn man Caddy verwendet, empfiehlt sich eine gekaufte Domain mit DNS-01-Challenge
Manche verwenden Vanity-Domains im privaten Netzwerk
internal.Jeder lokal gehosteten App kann eine eigene IP-Adresse zugewiesen werden
127.0.0/24verwendet werdenAuf Linux-Systemen funktioniert es standardmäßig über
systemd-resolved