rcktship 🚀
Rcktship is a lightweight node.js library used for easily running a series of commands on both your local machine and remote hosts. This is an ideal library for small scale deployments.
Rcktship is heavily inspired by Fabric, which is also a remote command runner written in Python.
Usage
# Install rcktship CLI globally $ npm install -g rcktship# or $ yarn global add rcktship # or in your project $ npm install --save-dev rcktship# or $ yarn add -D rcktship # Launch your first rocketship! $ rocket <target> [mission] [options] # or locally $ ./node_modules/.bin/rocket <target> [mission] [options]
Rcktship will look for a top level rcktship.js
file in your project, but you can explicitly define a config file by passing in --config
The rocket target is the host, or list of hosts, that you wish to run the mission on. Targets are defined in your rcktship.js file.
A mission is analogous to a Fabric task, which is a predefined set of commands you wish to run.
You must provide a target for your rocket, but you do not have to provide a mission. If you do not provide a mission rcktship will look for a default mission.
rcktship.js
file
Sample const rocket = ; rockettarget'prod' "host": "foo@bar.buz" "port": 22 "username": "foobar" "privateKey": "/Users/foobar" "passphrase": "*****"; rocket; rocket;
To run the above missions:
# Run default task $ rocket prod # Run pwd task $ rocket prod pwd
Connection objects used for targets are ConnectConfig from SSH2. Look there for any documentation on connection configurations.
Development
git clone git@github.com:jerkeeler/rcktship.gityarn installyarn start
Make any code changes, add tests, manually test your changes, then submit a pull request.
Testing
yarn test
Rcktship uses jest to do all testing and test coverage. Along with ts-jest for the TypeScript support.