Giter Site home page Giter Site logo

hotel's Introduction

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 with any server (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

hotel's People

Contributors

djyde avatar floydwch avatar ishanray avatar leocolomb avatar leoj3n avatar rstacruz avatar therealklanni avatar typicode avatar umhan35 avatar wtfaremyinitials avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.