Node deployment server - wrapper for haibu, http-proxy and carapace with permissions and automatic node versions
Wrapper for Haibu, Http Proxy and Carapace.
It makes running a Node deployment server as painless as possible.
After starting Ishiki, an API will be made available. With this API, you can deploy applications and manage them. If your application requires a specific version of Node, it will be set up automatically for you. Each application will run on its own IP:port internally, while being proxied through the domains specified on your app on whatever public port you want your sites to run on (e.g. 80).
Ishiki is provided as is and, as it stands, should not be used for production.
npm install haibu-ishiki
Or to install globally (preferred):
npm install haibu-ishiki -g
By default, Ishiki will run on the following settings:
config.js and modify if you want your own settings.
hostis the host Ishiki and its API will run on
portis the port Ishiki and its API will run on
public-portis the port the apps will be made available on to the public (proxy port)
deploy-diris where all the directories defined under
directoriesgo (defaults to
port-rangeis the range of ports the apps will listen on internally before being proxied
haibuis whatever settings are available to the haibu module
Ishiki provides its own API
Returns a list of all drones
Returns all drones for a given user
Returns drone info for given user/app
Returns all running drones
Deploys an app from a tarball for given user/app, with Curl from your app's directory:
tar -cz . | curl -XPOST -m 360 -sSNT- <ishiki-ip>:<ishiki-port>/drones/<user>/<app>/deploy
Starts a previously stopped drone for given user/app
Stops a running drone for given user/app
Restarts a running drone for given user/app
Returns a list of all proxies and associated routes
Returns a list of all routes for proxy on given port
Starts a proxy on given port
Updates or creates an arbitrary route for proxy on given port with source
port provided in
Stops and removes proxy and associated routes on given port
domain is provided in
POST, corresponding route will be removed from proxy on given port.
domain is not provided, then all routes matching the contents of
POST for proxy on given port will be deleted.
In this case
POST can have any of the following values for matching:
Returns all routes for given user for proxy on given port
Returns all routes for given user/app for proxy on given port
Deletes route for given user/app for proxy on given port
In your app's
package.json, make sure you have at least one of
These can be arrays or space-separated list of domains. These are used for proxy mapping. If not specified you can
always set a new proxy route manually using the API.
When your app runs a server, make sure it listens on
process.env.PORT. While it still works without, it ensures that
Ishiki will use one of the ports within the proxy port range defined in your configuration.
configure && make && make installto install Node versions