Start apps from your browser and get local domains in seconds!
Tip: if you don't enable local domains, hotel can still be used as a catalog of local servers.
Hotel works great on any OS (OS X, Linux, Windows) and with all servers ❤️
- Node (Express, Webpack)
- PHP (Laravel, Symfony)
- Ruby (Rails, Sinatra, Jekyll)
- Python (Django)
- Docker
- Go
- Apache, Nginx
- ...
- Local domains -
http://project.dev
- HTTPS 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, ...
- Proxy - Map local domains to remote servers
- System-friendly - No messing with
port 80
,/etc/hosts
,sudo
or additional software - Fallback URL -
http://localhost:2000/project
- Servers are only started when you access them
- Plays nice with other servers (Apache, Nginx, ...)
- Random or fixed ports
npm install -g hotel && hotel start
Hotel requires Node to be installed, if you don't have it, you can simply install it using one of the following method.
# http://brew.sh
brew install node
# https://github.com/creationix/nvm
nvm install stable
You can also visit https://nodejs.org.
To use local .dev
domains, you need to configure your network or browser to use hotel's proxy auto-config file or you can skip this step for the moment and go directly to http://localhost:2000
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 'ember server'
hotel add 'jekyll serve --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'
Add your remote servers
~$ hotel add http://foo.com --name bar
~$ hotel add http://192.168.1.12:1337 --name some-server
You can now access them using
http://bar.dev # http://foo.com
http://some-server.dev # http://192.168.1.12:1337
hotel add <cmd|url> [opts]
# Examples:
hotel add 'nodemon app.js' --out dev.log # Set output file (default: none)
hotel add 'nodemon app.js' --name name # Set custom name (default: current dir name)
hotel add 'nodemon app.js' --port 3000 # Set a fixed port (default: random port)
hotel add 'nodemon app.js' --env PATH # Store PATH environment variable in server config
hotel add http://192.168.1.10 --name app # map local domain to URL
# Other commands
hotel ls # List servers
hotel rm # Remove server
hotel start # Start hotel daemon
hotel stop # Stop hotel daemon
To get help
hotel --help
hotel --help <cmd>
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
If you're offline or can't configure your browser to use .dev
domains, you can always access your local servers by going to localhost:2000.
~/.hotel
contains daemon logs, servers and daemon configurations.
~/.hotel/conf.json
~/.hotel/daemon.log
~/.hotel/daemon.pid
~/.hotel/servers/<app-name>.json
- Hotel Clerk OS X menubar
- HotelX Another OS X menubar (only 1.6MB)
MIT - Typicode