A cluster package manager

npm install cpm
9 downloads in the last week
14 downloads in the last month

Cluster Package Manager (cpm)

What is cpm?

cpm is a command-line package manager for fetching and installing services onto your own cluster of remote machines. cpm is espired by my experience with npm. While package managers such as npm and bower install code libraries and modules to be included as a compile-time or run-time component of a program, cpm installs a running service. In most cases, there is zero configuration. In some cases, things like api key/secrets or a default username/password might be required in order to bootstrap the service.

Use case

You stumble across something like Ghost or StriderCD. You run something like:

cpm install ghost

Boom. Ghost is running on your cluster. If ghost depended on other services, it would install those as well. If ghost required configuration parameters it would pull those from your cluster if the values were already set.

How does it work?

cpm connects to your cluster for each command it executes. Your cluster runs a daemon (cpd) which receives cpm commands and deploys services. cpd is built on top of docker and etcd. To make things easier, I am directly building on top of a CoreOS cluster for now. However you can try getting things to run on whatever cluster system you like as long as it has docker and etcd installed.

Package Availability

cpm will only ever be as good as the packages available in its repositories. I am going to build a core set of packages based on things I depend on (mostly developer tools). These will be things like:

  • continuous integration/deployment
  • blog publishing engines
  • load testing services
  • mobile build services (remote xcode)
  • ios and android beta-test managers
  • real-time coding or chat collaboration
  • source code repositories

Installing cpm

npm install -g cpm

Using cpm


npm loves you