Skip to content

sprisa/localhost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

localhost

Chromium HSTS preload Endpoint Badge

Terminal Example

Local development certs for LAN https services.

Localhost exposes local insecure http services as fully encrypted https available at svc.host

Install

brew install sprisa/tap/localhost             # With Homebrew (MacOS / Linux)
go install github.com/sprisa/localhost@latest # With Go (Any platform — doesn't auto update)

Usage

Serve the service at port 3000

localhost 3000

Navigate to the https service at https://local.svc.host:5050

Serve on all interfaces

localhost 3000 -a

Change the proxy port. Defaults to port 5050

localhost 3000 -p 3001

https://local.svc.host:3001

Show Help

localhost --help

Why?

1. Many Javascript APIs are only available in secure contexts (aka https). This makes local development harder than it should be.

  • For example the Crypto API. This list of restricted APIs is only growing.
  • Some browser contexts, like iOS Webviews, refuse to load insecure webpages.

2. Easier mobile development (React Native)

  • iOS will not make api requests to insecure APIs (http) when the development app is running on a remote device.

3. Remote development debugging

  • Localhost makes it easy to share your service on your Mesh Network IP.
  • Remote development without needing to be on the same LAN network when using a mesh network like Priv Network or Tailscale

Whats is svc.host?

svc.host is a DNS server which replies with your local WAN IP. It allows the https (tls) certificates to be trusted by your browser.

Hostnames are in the form [ip-address].svc.host, with the IP's dot seperator (.) being replaced with a dash (-) instead.

dig 192-168-1-180.svc.host => 192.168.1.180
dig 10-10-10-10.svc.host => 10.10.10.10
dig local.svc.host => 127.0.0.1

Only private IP ranges are supported.

Inspiration