Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/layerssss/localhostd
Run and serve your web apps in .test domains on your develop machine.
https://github.com/layerssss/localhostd
developer-tools electron-app http-proxy nodejs reactjs ssl
Last synced: 15 days ago
JSON representation
Run and serve your web apps in .test domains on your develop machine.
- Host: GitHub
- URL: https://github.com/layerssss/localhostd
- Owner: layerssss
- License: mit
- Created: 2017-05-04T22:11:55.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-10-19T01:21:42.000Z (about 2 years ago)
- Last Synced: 2024-10-07T20:38:01.714Z (about 1 month ago)
- Topics: developer-tools, electron-app, http-proxy, nodejs, reactjs, ssl
- Language: JavaScript
- Homepage:
- Size: 1.75 MB
- Stars: 29
- Watchers: 4
- Forks: 57
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# LocalhostD
Run and serve your web apps in .test domains on your develop machine.
![a](https://user-images.githubusercontent.com/1559832/27260786-ccb150de-5488-11e7-9cb5-44b98d5fdad2.gif)
This project is inspired by:
* [37 Signals' Pow](http://pow.cx/) (Rack, OS X only)
* [typicode/hotel](https://github.com/typicode/hotel)Comparing to hotel, this project comes with a few extra features:
* Full-fledged / operable terminal (powered by battle-hardened [node-pty](https://github.com/Tyriar/node-pty) and [xterm.js](https://github.com/sourcelair/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](https://github.com/layerssss/localhostd/releases).
## 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](LICENSE)