Hotel
made with Vuejs

简介及使用教程

Hotel是一个面向开发人员的简单进程管理器。用户可以从浏览器启动应用程序,然后使用localhost访问。

特点

  • 本地访问-http://project.localhost
  • 支持本地自签名SSL证书-https://project.localhost
  • 支持通配符子域-http://*.project.localhost
  • 适用于macOS、Linux和Windows
  • 适用于任何服务器:node、Ruby、PHP..
  • 支持代理:将本地域映射到远程服务器
  • 系统友好:不会弄乱port 80/etc/hostssudo 或其他软件
  • Fallback URL:http://localhost:2000/project
  • 只有在访问服务器时才会启动服务器
  • 与其他服务器(Apache、Nginx等)配合得很好
  • 随机或固定端口

安装

Npm

npm install -g hotel

Yarn

yarn add  -g hotel

启动

hotel start

使用

local域名

如果你需要使用.local域名,你需要配置的你的网络或浏览器来使用hotel的代理自动配置文件。

你也可以跳过这步直接使用http://localhost:2000

添加服务

# 添加服务到 hotel
~/projects/one$ hotel add 'npm start'
# 或者和往常一样在终端启动服务,同时获得一个临时的local域名
~/projects/two$ hotel run 'npm start' 

然后,可以访问

http://localhost:2000/one
http://localhost:2000/two
http(s)://one.localhost
http(s)://two.localhost 

常用的服务例子

hotel add 'ember server'                               # Ember
hotel add 'jekyll serve --port $PORT'                  # Jekyll
hotel add 'rails server -p $PORT -b 127.0.0.1'         # Rails
hotel add 'python -m SimpleHTTPServer $PORT'           # static file server (Python)
hotel add 'php -S 127.0.0.1:$PORT'                     # PHP
hotel add 'docker-compose up'                          # docker-compose
hotel add 'python manage.py runserver 127.0.0.1:$PORT' # Django
# ...

代理请求到远程服务器

添加远程服务器

~$ hotel add http://192.168.1.12:1337 --name aliased-address
~$ hotel add http://google.com --name aliased-domain 

然后,你可以这样访问

http://aliased-address.localhost # will proxy requests to http://192.168.1.12:1337
http://aliased-domain.localhost # will proxy requests to http://google.com

CLI用法及选项

hotel add <cmd|url> [opts]
hotel run <cmd> [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

hotel run 'nodemon app.js'                # Run server and get a temporary local domain

# Other commands

hotel ls     # List servers
hotel rm     # Remove server
hotel start  # Start hotel daemon
hotel stop   # Stop hotel daemon

hotel --help
hotel --help <cmd>

端口

你的服务需要监听PORT环境变量让hotel起作用。这里有一个例子:

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

配置、日志和自签名ssl证书

你可以找到相关文件~/.hotel :

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

默认情况下,hotel使用一下配置值:

{
  "port": 2000,
  "host": '127.0.0.1',

  // Timeout when proxying requests to local domains
  "timeout": 5000,

  // Change this if you want to use another tld than .localhost
  "tld": 'localhost', 

  // If you're behind a corporate proxy, replace this with your network proxy IP (example: "1.2.3.4:5000")
  "proxy": false
}

想要重写这些值,你可以简单的在~/.hotel/conf.json 添加即可,然后运行hotel stop && hotel start

作者

Typicode

@typicode

相关项目

这是一个使用Vue组件编写歌曲的工具。
这是一个经过Podcast优化的、基于HTML5的音频播放器。
这是一个Vue错误跟踪插件。
这是一个自动报告未捕获的JS异常的Vue插件。
这是一个使用Vue和NativeScript的生成原生移动APP的插件。