Show HN: Shipit, pure JavaScript deployment tool used by Ghost blogging platform(github.com)
github.com
Show HN: Shipit, pure JavaScript deployment tool used by Ghost blogging platform
https://github.com/shipitjs/shipit
49 comments
My childish brain pulled a full-Freudian with that name. Might want to capitalize the I maybe?
My first thought was related to the name too - it's an unfortunate collision with Brad Fitzpatricks' shipit:
http://search.cpan.org/dist/ShipIt/
http://search.cpan.org/dist/ShipIt/
I shipmy pants
Looks very similar to: https://www.npmjs.com/package/flightplan
You might also be interested in Overcast (I'm the author): https://www.npmjs.com/package/overcast
Nice, i prefer node over ruby, so maybe i'll use this. For the same reason i prefer LESS over SASS (apart from the great performance improvement).
For Less and Sass, it's not very annoying because you don't have to write a lot of ruby code. But writting a complete deployment script if you don't know ruby is very hard... I love to be able to use my favorite JS modules in my deploy script, that's why I wrote Shipit.
That is one solid point. Thanks for helping all of us out!
If you run `npm install -g sass` you'll get the native JS version of SASS.
Thanks, didn't know that. Right now i was using libsass for some projects. It compiles faster than the ruby sass.
The problem is that native sass is not the same version as ruby sass its infuriating.
I am starting to see the light on all this tooling madness. It does not matter: languages and their ecosystems are powerful enough for any project to build their own tools. Projects are fond of their tools, so they give them fancy names and logos, and release them in hopes they are useful to somebody.
How is this different from Grunt or Gulp? Is it used with or in place of? After reading the docs I'm not sure I see the difference or the value add.
It leverages 'orchestrate' (which is what gulp uses) to do deploys across a variety of hosts, keeping the old versions around should you need to switch back easily.
Try deploying just with grunt and you will see the difference.
The grunt-aws module makes deploying to S3 and cloudfront a breeze. We switched to this for all our FE devs awhile ago and it's been painless.
https://github.com/jpillora/grunt-aws
https://github.com/jpillora/grunt-aws
Is ShipIt an Ansible replacement? The idea of Ansible is good, but I would like a JavaScript based tool and avoid Ruby. Edit: i meant Python
You can do most of your Ansible work without needing to touch Python. I'm a Python programmer, and I've never needed to touch Python (other than running Ansible, which is a Python program) with respect to an Ansible setup.
Shipit can be an Ansible replacement, but there is no command abstraction to Shipit. Shipit is designed to quickly deploy a project on a set of servers not to configure an entire server.
Ansible is written in Python.
what about ruby makes you want to avoid it? strictly curious
Sorry, I meant Python. I am familar with Algol syntax based languages and prefer C/C++/ObjectC/C#/Java/PHP/JS/Go/Rust/Lua/Basic/Pascal/Ada/Smalltalk/Scheme over Python/Ruby/Haskel.
What does Algol syntax have to do with that? Several of the first set of languages you list are not Algol-based, while two of the last three are Algol-syntax-based.
It would be cool to see a tutorial on configuring Shipit to do Ghost deployments.
Where is Ghost using this tool?
They used in to deploy projects internally, same for Le Monde. Shipit is not designed to Shipit projects over a lot of servers. It's designed to Shipit small projects or even to ship code on hardware (like raspberry).
I'd guess they use it on their hosted platform.
Would be my guess too, but other than a single PR from one of the core devs I can't find any connection between the projects. Is there any source for this?
Sweet, i may actually use it, more documentation would be nice though.
If you need more documentation about deploying using Shipit, you can find it in the deploy set of tasks: https://github.com/shipitjs/shipit-deploy
[deleted](1)
Shameless plug: I'm the author of Flightplan[1], a library which provides a simple, yet powerful interface to execute sequences of shell commands on local and remote host(s).
[1] https://github.com/pstadler/flightplan