Skip to content

Run and serve your web apps in .test domains on your develop machine.

License

Notifications You must be signed in to change notification settings

layerssss/localhostd

Repository files navigation

LocalhostD

Run and serve your web apps in .test domains on your develop machine.

a

This project is inspired by:

Comparing to hotel, this project comes with a few extra features:

  • Full-fledged / operable terminal (powered by battle-hardened node-pty and xterm.js)
  • Also shipped as an Electron / GUI app (available on Linux / OS X / Windows)
  • Robust state control (easily and reliably restarting app when needed)
  • Proxy all network request (so you don't have to setup proxy auto-config, just use the single proxy, makes it easy for cross-projects API invocation)
  • Self-signed SSL connection (with correct SAN so it produces a 'greenlock' after marking CA trusted manually)
  • Set a timeout option so application will be automatically shutdown

Install

If you prefer launching and keeping it by CLI, then

npm install localhostd -g
localhostd server 

... or if you prefer launching it as a GUI staying as a tray icon, download the latest release.

Usage

Configure your brower to use http://localhost:2999 as HTTP/HTTPS proxy. Then add your apps in http://localhostd.test/ (or in GUI), specifying the directory and the command to run your application.

Make sure they listen to the HTTP port number specified in the PORT enviroment variable. Here are some examples commands:

  • ember server
  • jekyll server
  • rails server --port $PORT --bind 127.0.0.1 --bind 127.0.0.1 is for OSX otherwise rails will be using a special localhost socket which is not accessible by Node.js API
  • python -m SimpleHTTPServer $PORT
  • php -S 127.0.0.1:$PORT

Then click the 🌎 button in the app details to go to its .test domain. localhostd will launch your app for you.

Self-signed SSL

localhostd generates a self-signed CA key-pair and stores it with other data at ~/.localhostd.json. Then it signs SSL certificate for each .test domain when requested. So SSL works out of box, just by going to https://my-app.test/. But if want to see a 'greenlock', i.e. to make your browser trust localhostd, you need to mark your self-signed CA as trusted in browser or OS.

License

MIT - Michael Yin