Skip to content

MeySalehi/hotel

 
 

Repository files navigation

hotel Mac/Linux Build Status

No need to worry about ports, remember commands, manage terminal tabs... access and start your servers from the browser. You can even use local .dev domains or any other tld, and it works everywhere (OS X, Linux, Windows) 👍

Features

  • Shortcut access - http://localhost:2000/project
  • Local domains - http://project.dev
  • SSL via self-signed certificate - https://project.dev
  • Wildcard subdomains - http://*.project.dev
  • Works everywhere - OS X, Linux and Windows
  • Works with any server - Node, Ruby, PHP, ...
  • System-friendly - no messing with port 80, /etc/hosts or sudo
  • Servers are only started when you access them
  • Plays nice with other servers (Apache, Nginx, ...)
  • Random or fixed ports
  • See Roadmap for upcoming features :)

* Local .dev domains are optional. To use them, configure your network or browser to use hotel's proxy auto-config file (proxy.pac). See instructions here.

Install

npm install -g hotel && hotel start

If you don't have Node installed, use brew, nvm or go to nodejs.org.

Quick start

Add your servers commands.

~/projects/one$ hotel add nodemon
~/projects/two$ hotel add 'serve -p $PORT'

Go to localhost:2000 or hotel.dev.

Alternatively you can directly go to:

http://localhost:2000/one
http://localhost:2000/two
http://one.dev
http://two.dev
https://one.dev
https://two.dev

Using other servers? Here are some examples to get you started :)

hotel add 'jekyll --port $PORT'
hotel add 'rails server -p $PORT -b 127.0.0.1'
hotel add 'python -m SimpleHTTPServer $PORT'
hotel add 'php -S 127.0.0.1:$PORT'
# ...

On Windows use "%PORT%" instead of '$PORT'

CLI usage and options

hotel add <cmd> [opts]

# Examples:
hotel add 'nodemon app.js' -o out.log # Set output file (default: none)
hotel add 'nodemon app.js' -n name    # Set custom name (default: current dir name)
hotel add 'nodemon app.js' -p 3000    # Set a fixed port (default: random port)
hotel add 'nodemon app.js' -e PATH    # Store PATH environment variable in server config

# Other commands
hotel ls        # List servers
hotel rm [name] # Remove server
hotel start     # Start hotel daemon
hotel stop      # Stop hotel daemon

Port

For hotel to work, your servers need to listen on the PORT environment variable. Here are some examples showing how you can do it from your code or the command-line:

var port = process.env.PORT || 3000
server.listen(port)
hotel add 'cmd -p $PORT'  # OS X, Linux
hotel add "cmd -p %PORT%" # Windows

Dev domain support

See instructions here.

Fallback URL

If you're offline or can't configure your browser to use .dev domains, you can always access your local servers by going to http://localhost:2000.

Configurations and logs

~/.hotel contains daemon logs, servers and daemon configurations.

~/.hotel/conf.json
~/.hotel/daemon.log
~/.hotel/daemon.pid
~/.hotel/servers/<app-name>.json

Third-party tools

Roadmap

  • Add in-browser logs
  • Add Wildcard domains support
  • Add colors to in-browser logs
  • Add Domain redirection

License

MIT - Typicode

About

Local domains for everyone and more!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 86.9%
  • Vue 8.8%
  • CSS 3.9%
  • HTML 0.4%