- Berbagi pengalaman menyiapkan web app yang sedang dikembangkan agar bisa diakses dengan alamat sederhana seperti
appname.localhost, tanpa harus mengingat port seperti localhost:4333
- Dengan sistem ini, akses ke web app lokal menjadi jauh lebih intuitif dan rapi
- Setiap app berjalan pada port unik sebagai daemon
launchd
- Mengalihkan
appname.localhost ke 127.0.0.1 di file /etc/hosts
- Contoh:
127.0.0.1 inclouds.localhost
- Menggunakan Caddy untuk mem-proxy domain tersebut ke port yang sesuai
Contoh konfigurasi Caddy
inclouds.localhost {
reverse_proxy localhost:5050
tls internal
encode gzip zstd
}
- Untuk setiap domain
.localhost, tulis konfigurasi proxy di Caddyfile ke port terkait
- Dukungan sertifikat TLS internal dan kompresi juga disertakan
Ide pengembangan selanjutnya
- Saat ini masih perlu mengedit tiga file secara manual (
/etc/hosts, Caddyfile, launchd plist)
- Ke depannya, targetnya adalah membuat alat otomasi untuk memasang/menghapus app ke domain
.localhost dengan satu perintah
Pembaruan
- Cristóbal mengusulkan pendekatan berbasis dnsmasq yang membuat proses ini lebih sederhana
- Ide intinya adalah sebagai berikut:
- Mengalihkan semua
*.localhost ke 127.0.0.1
- Menyiapkan server yang melakukan reverse proxy dari
127.0.0.1 ke port tertentu
Menyiapkan pengalihan dengan dnsmasq
Menyiapkan reverse proxy dengan Caddy dan skrip localhost
Uji cara kerjanya secara langsung
2 komentar
Kalau bukan lingkungan yang tidak bisa diakses dari jaringan luar, saya sih akan pakai Wildcard DNS seperti NIP.IO.
Opini Hacker News
Browser menyediakan konteks keamanan untuk domain .localhost
Snippet konfigurasi pengembangan lokal nginx sederhana
Chrome dan Firefox secara default me-resolve semua domain <name>.localhost ke localhost
Proyek Localias berguna untuk pengembangan web lokal
Subdomain dari .localhost bekerja secara default di Linux, OpenBSD, dan lainnya
Jika menggunakan Caddy, sebaiknya memakai domain yang dibeli dan DNS-01 challenge
Ada juga yang menggunakan vanity domain di jaringan pribadi
Setiap aplikasi yang di-host secara lokal bisa diberi alamat IP terpisah
Di sistem Linux, ini bekerja secara default melalui systemd-resolved