Get local domains in seconds!
It works everywhere (OS X, Linux, Windows) with any server (Node, Go, Rails, PHP, ...).
Tip: if you don't enable local domains, hotel can still be used as a catalog of local servers.
- 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
* 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.
npm install -g hotel && hotel start
If you don't have Node installed, use brew brew install node
, nvm nvm install stable
or go to nodejs.org.
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'
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
See instructions here.
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
Favicon provided free by EmojiOne