Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evhaus/rocketry
Simple deployment automation & continuous delivery for Node.js projects.
https://github.com/evhaus/rocketry
automation continuous continuous-delivery deliver delivery deploy deployer deployment digitalocean droplet integration launch linode node nodejs release rocket rocketry script
Last synced: 15 days ago
JSON representation
Simple deployment automation & continuous delivery for Node.js projects.
- Host: GitHub
- URL: https://github.com/evhaus/rocketry
- Owner: EvHaus
- License: mit
- Archived: true
- Created: 2018-06-14T03:03:57.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-06-22T03:14:21.000Z (over 3 years ago)
- Last Synced: 2025-01-13T13:34:54.259Z (21 days ago)
- Topics: automation, continuous, continuous-delivery, deliver, delivery, deploy, deployer, deployment, digitalocean, droplet, integration, launch, linode, node, nodejs, release, rocket, rocketry, script
- Language: JavaScript
- Homepage:
- Size: 65.3 MB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
rocketry
⚠️ This package is deprecated. ⚠️
Simple deployment automation & continuous delivery for Node.js projects.
## The Problem
Services like [DigitalOcean](https://www.digitalocean.com/)'s _droplets_ and [Linode](https://www.linode.com/)'s _linodes_ make it super easy to create deployment targets for websites and other Node.js projects. However, there are still a lot of manual steps developers have to do in order to ship the app: install Node, install a runner like `pm2` or `forever`, install system security patches, zip up & upload the app, create the necessary target directories, and more.
## The Solution
Once you define a single configuration `.rocketryrc` file, you can run `npx deploy run` and everything will be handled for you. Then, with a few other small steps, you can automate the entire process via a CI tool so deployments occur automatically anytime you push changes to your `master` branch.
## Installation & Usage
For instructions on how to use the tool, see [/docs](/docs/README.md).
## Goals & Roadmap
These are the goals for this project:
- [x] Installation & setup of target server
- [x] Install `node` and upgrade it to the latest version
- [x] Install `yarn` and upgrade it to the latest version
- [x] Install `pm2` and upgrade it to the latest version
- [x] Upgrade `apt-get` packages to ensure the latest system security patches are installed
- [x] Automation of deployment steps
- [x] Create target directories on target server
- [x] Upload local project files to target server via SSH
- [x] Install/upgrade `node` dependencies on target server
- [x] Start/restart of services on target server
- [x] Start the application if it's the first deployment, otherwise restart it for updates
- [x] Integration with CI systems for automated deployment triggers
- [x] Automated deployments via username & password
- [ ] Automated deployments via SSH key
- [ ] Seamless deployments without downtime## Other Solutions
How does this project differ from similar existing public projects?
- [`Netlify`](https://www.netlify.com/) - It's incredible, but not free past a certain point
- [`Vercel`](https://www.vercel.com/) - Also incredible, but not free past a certain point
- [`dploy`](https://github.com/lucasmotta/dploy) - Doesn't support server-side package upgrades
- [`dployr`](https://github.com/faazshift/dployr) - Assumes the Git project is accessible from the server
- [`shipit`](https://github.com/shipitjs/shipit) - JavaScript-based (as opposed to configuration-based) and doesn't support server-side package upgrades
- [`zaz`](https://github.com/bredikhin/zaz) - Assumes the Git project is accessible from the server## Contributing
Contributions for bug fixes and new features are welcome via Pull Requests.
### Publishing a New Version
- Set the version you want in `package.json` (or leave it as is for an auto patch version bump)
- Set the same version in `CHANGELOG.md` and put today's date and changes
- Run `npm run release`
- Set the next version in `package.json`
- Add the next block to the `CHANGELOG.md`
- Set git tag on the released commit### Simulate a Deployment
To simulate a deployment (to test the script), clone this project and run:
```sh
yarn start
```## LICENSE
MIT