{"_id":"propagit-f","_rev":"31-5fe6554a2d60e11f0cc5c0bad7ee26fd","name":"propagit-f","description":"cascading multi-server git deployment","dist-tags":{"latest":"0.6.11"},"versions":{"0.6.4":{"name":"propagit-f","description":"cascading multi-server git deployment","version":"0.6.4","repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"main":"index.js","bin":{"propagit":"bin/cli.js"},"keywords":["git","deploy","multi-server","cluster"],"directories":{"lib":".","example":"example","test":"test"},"scripts":{"test":"tap test/*.js"},"dependencies":{"optimist":"~0.3.4","upnode":"~0.4.3","pushover-f":"~1.1.0","mkdirp":"~0.3.3"},"devDependencies":{"tap":"~0.2.3"},"engines":{"node":">=0.4.0"},"license":"MIT","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"_id":"propagit-f@0.6.4","dist":{"shasum":"fc2446a4fe883f8c20d959272456d75363a01c52","tarball":"https://registry.npmjs.org/propagit-f/-/propagit-f-0.6.4.tgz","integrity":"sha512-A1vVbq87ElMojtVbjFOrA+ilh9iPat0bvdOXOGuhValKCvEvPZn3DYAogLJ2Q0xIlvJ8ouyHsrj8L8MymIoviQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXa4AQ6qg5V+m9MilQ4pqkCvlD5yRoTZ76wJJ69f87YgIhAMgAQe91BP1CJliQlDts0sv/B5rpzWCemO7njUSwP/mq"}]},"_npmVersion":"1.1.68","_npmUser":{"name":"fractal","email":"contact@wearefractal.com"},"maintainers":[{"name":"fractal","email":"contact@wearefractal.com"}]},"0.6.5":{"name":"propagit-f","description":"cascading multi-server git deployment","version":"0.6.5","repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"main":"index.js","bin":{"propagit":"bin/cli.js"},"keywords":["git","deploy","multi-server","cluster"],"directories":{"lib":".","example":"example","test":"test"},"scripts":{"test":"tap test/*.js"},"dependencies":{"optimist":"~0.3.4","upnode":"~0.4.3","pushover-f":"~1.1.1","mkdirp":"~0.3.3"},"devDependencies":{"tap":"~0.2.3"},"engines":{"node":">=0.4.0"},"license":"MIT","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"_id":"propagit-f@0.6.5","dist":{"shasum":"7ae0fd27a77e461df564bcb8eb9c151c33be3c01","tarball":"https://registry.npmjs.org/propagit-f/-/propagit-f-0.6.5.tgz","integrity":"sha512-CezaWsNh2EcAGrw+lk9XKyj0+1AF/Se60OlOhe9zfJkTvSRUVJFqB844RPuGyqA3Z6ErTlE0mqPtudwAGVEciA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBbsRNpjyG4OPdY1GsXKl6j1n6hrxdRnB6r/c0CFfXOGAiBoIaHBmNI+X7YxfSQ3nwl2Gwz1e23vEXz49FIH9AvJzQ=="}]},"_npmVersion":"1.1.68","_npmUser":{"name":"fractal","email":"contact@wearefractal.com"},"maintainers":[{"name":"fractal","email":"contact@wearefractal.com"}]},"0.6.6":{"name":"propagit-f","description":"cascading multi-server git deployment","version":"0.6.6","repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"main":"index.js","bin":{"propagit":"bin/cli.js"},"keywords":["git","deploy","multi-server","cluster"],"directories":{"lib":".","example":"example","test":"test"},"scripts":{"test":"tap test/*.js"},"dependencies":{"optimist":"~0.3.4","upnode":"~0.4.3","pushover-f":"~1.1.1","mkdirp":"~0.3.3"},"devDependencies":{"tap":"~0.2.3"},"engines":{"node":">=0.4.0"},"license":"MIT","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"_id":"propagit-f@0.6.6","dist":{"shasum":"dea0ee055f0589f26d2751c454730b4874349355","tarball":"https://registry.npmjs.org/propagit-f/-/propagit-f-0.6.6.tgz","integrity":"sha512-yNKWqcMfef1d48T0Z4B19n/jeGhfuHtDPNqRMy83fMznbBKDqYRbHCZ3VA+VzXqO+lMxW3YvRJpu9zRU+j3CHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCRyDSEIrzcCKH+8e8uDDri6CCNyALjgOw3g3n4nHVsgIhALkWmioOZkf4PQX5RLsepcaiQPbp1PbO0s2cc8Zf3hH8"}]},"_npmVersion":"1.1.68","_npmUser":{"name":"fractal","email":"contact@wearefractal.com"},"maintainers":[{"name":"fractal","email":"contact@wearefractal.com"}]},"0.6.7":{"name":"propagit-f","description":"cascading multi-server git deployment","version":"0.6.7","repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"main":"index.js","bin":{"propagit":"bin/cli.js"},"keywords":["git","deploy","multi-server","cluster"],"directories":{"lib":".","example":"example","test":"test"},"scripts":{"test":"tap test/*.js"},"dependencies":{"optimist":"~0.3.4","upnode":"~0.4.3","pushover-f":"*","mkdirp":"~0.3.3"},"devDependencies":{"tap":"~0.2.3"},"engines":{"node":">=0.4.0"},"license":"MIT","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"_id":"propagit-f@0.6.7","dist":{"shasum":"b4a1b90c74579a524aed01ba39f29716f439261b","tarball":"https://registry.npmjs.org/propagit-f/-/propagit-f-0.6.7.tgz","integrity":"sha512-S2BfsnKkEIVpxTg7qN35oahfNyt3ItmIApwczHyMDhIrz1uOQMkhecLH8YhCQH66od+LaW92UfsBVgOkaww8MA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC673sY1r9RNF6auUgltKe3kr3TZVlc8qNgw0SRZ3L6uAiEAjBOS/Dp1Hhl85olbXL4adYnhd4x1g2Xkq8WmdRlhFTw="}]},"_npmVersion":"1.1.68","_npmUser":{"name":"fractal","email":"contact@wearefractal.com"},"maintainers":[{"name":"fractal","email":"contact@wearefractal.com"}]},"0.6.8":{"name":"propagit-f","description":"cascading multi-server git deployment","version":"0.6.8","repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"main":"index.js","bin":{"propagit":"bin/cli.js"},"keywords":["git","deploy","multi-server","cluster"],"directories":{"lib":".","example":"example","test":"test"},"scripts":{"test":"tap test/*.js"},"dependencies":{"optimist":"~0.3.4","upnode":"~0.4.3","pushover-f":"*","mkdirp":"~0.3.3"},"devDependencies":{"tap":"~0.2.3"},"engines":{"node":">=0.4.0"},"license":"MIT","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"_id":"propagit-f@0.6.8","dist":{"shasum":"a88734fa515ce1da6f1373bf801b99cec6bc8b3a","tarball":"https://registry.npmjs.org/propagit-f/-/propagit-f-0.6.8.tgz","integrity":"sha512-CJLWR01jsH/UosVj1vCCHS0RKTCeP+Jz99RKrj8VPXq7YOsR0WpXrkVavLwuaA8NoXnsUfSl+EUy5tFvn0re4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGSqiczf9ONKbzv38qaYpqEw89rdbdNf07Ti1tf2Is4MAiEAjsHZl7LnaSb5F/+u/fzujx+6H7dR4DD3lsaYD8QiscE="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"fractal","email":"contact@wearefractal.com"},"maintainers":[{"name":"fractal","email":"contact@wearefractal.com"}]},"0.6.9":{"name":"propagit-f","description":"cascading multi-server git deployment","version":"0.6.9","repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"main":"index.js","bin":{"propagit":"bin/cli.js"},"keywords":["git","deploy","multi-server","cluster"],"directories":{"lib":".","example":"example","test":"test"},"scripts":{"test":"tap test/*.js"},"dependencies":{"optimist":"~0.3.4","upnode":"~0.4.3","pushover-f":"*","mkdirp":"~0.3.3"},"devDependencies":{"tap":"~0.2.3"},"engines":{"node":">=0.4.0"},"license":"MIT","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"_id":"propagit-f@0.6.9","dist":{"shasum":"54490275b308fe86caee0a3913b1f780f07e87b8","tarball":"https://registry.npmjs.org/propagit-f/-/propagit-f-0.6.9.tgz","integrity":"sha512-ma1wft/NPWHCjB9jTns2KSDG4Ot66JH4/NAlLDSSD98XTBDr4flAMaISfwtD1fKyGhyuslEbbJFftPi/COnIEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/aQrnp4Me5wXgx94cllcvNfjx/L/4HZDNsfbp4+7cTQIhAMBvXW+eS1KmoHRj5s75B5JyNt4UGUZy2xSmEdBksYh1"}]},"_npmVersion":"1.1.69","_npmUser":{"name":"fractal","email":"contact@wearefractal.com"},"maintainers":[{"name":"fractal","email":"contact@wearefractal.com"}]},"0.6.10":{"name":"propagit-f","description":"cascading multi-server git deployment","version":"0.6.10","repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"main":"index.js","bin":{"propagit":"bin/cli.js"},"keywords":["git","deploy","multi-server","cluster"],"directories":{"lib":".","example":"example","test":"test"},"scripts":{"test":"tap test/*.js"},"dependencies":{"optimist":"~0.3.4","upnode":"~0.4.3","pushover-f":"*","mkdirp":"~0.3.3"},"devDependencies":{"tap":"~0.2.3"},"engines":{"node":">=0.4.0"},"license":"MIT","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"_id":"propagit-f@0.6.10","dist":{"shasum":"65afa644b9d17f4911515d45d60c4f2cf462330c","tarball":"https://registry.npmjs.org/propagit-f/-/propagit-f-0.6.10.tgz","integrity":"sha512-dqO3Wzc6gwk+plmPpaQQFy7qtHr9bT5mDxDenQJr6jcwkLK6uImmWupXpSCyv69GsdnmD19DM2PWQNtOB+wzGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCm18S9oszT8Fuj2R6QXspiizWbIZjpsj3r5/IFkc/ZFwIhAKf8pb0iRgwio50uajXoJaBieBWhwKkpkGV0geM1gM7l"}]},"_npmVersion":"1.1.69","_npmUser":{"name":"fractal","email":"contact@wearefractal.com"},"maintainers":[{"name":"fractal","email":"contact@wearefractal.com"}]},"0.6.11":{"name":"propagit-f","description":"cascading multi-server git deployment","version":"0.6.11","repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"main":"index.js","bin":{"propagit":"bin/cli.js"},"keywords":["git","deploy","multi-server","cluster"],"directories":{"lib":".","example":"example","test":"test"},"scripts":{"test":"tap test/*.js"},"dependencies":{"optimist":"~0.3.4","upnode":"~0.4.3","pushover-f":"*","mkdirp":"~0.3.3"},"devDependencies":{"tap":"~0.2.3"},"engines":{"node":">=0.4.0"},"license":"MIT","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"_id":"propagit-f@0.6.11","dist":{"shasum":"f8dc998fc8a71751671b6766ace716e4e6a7ddfd","tarball":"https://registry.npmjs.org/propagit-f/-/propagit-f-0.6.11.tgz","npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh23TbCRA9TVsSAnZWagAAGTgP/A6FAQOS7qKYMuFS8Sik\n0otUTm8XZVImGbUrilZ7gdrApE/FIMSITnfFFL/tWK3zLFmXPJ7VJn+3Df1T\nR7O3Mr6Jh00ONrD8D8ZqnXhGhyzAzxUatviPmg84T3WO3yZV9wiFUzoGXsl7\nHCc0HqGFWvroe/rH9He2eUMP9JFTzXOoc5o4jcQhIh1739vNAXGTkSegjbnD\nldEm97Fw3GcCxv6YwoTG5DFoqaA8q44hVkd9DymljxuoZA6YWDsHQYM9UOai\nIZLPRTti5QoM5zAZhtxdJ56nnYm7rrvZgWqY31hT59D4JilOcynz8xlejG2l\nSgQf7eMMJ/UmJ2y9PG4WMP4jh7BBMLP2bZaIuHqWllTsV91To8MGyTzp0tTh\nfVFtfO3mdgOwFU95qeQ/Tbyptq+Y09Rk91Jjwx7xvZ9pe1+TsJYoGevcIOMY\npvGwCzl3nFAaqMJp6JxshjvQxr1H56eYDQRMBnY6lFR9VWs5OEOssky5cy7f\nYh1xV+DPouZQUlxjtZ/tLryIjBqlMcLV07jlutgVdB+8q19E32IViZ5LTh4L\nQ1RlOwbXeiPCVufczuCSjDmGEhFC25543zl8F6WgRUrtfo8r/Rx9JpBPu4Oe\nIioKjEdDipXLkKsj4tGajmGhu1hhLC1xtzMbmprfXnNzLZqnGkUvHOvvKPuU\nU+/8\r\n=LvTb\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-DT8jQnon54OgdJQr5pK6WZyJMwPvkLNDEI463L9YjUHwNToON7er6+jAmJtfa4dBMPnJr+vE5NqJkL7pcLAT+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGlr5osKRSG1qwtGY6tMiUJvSmT/19rhWo4jPz2YlDj5AiAs69+1HgzmU3IGzritr4Y3aeZPOkf8rN6e9CyPCoOTCA=="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"fractal","email":"contact@wearefractal.com"},"maintainers":[{"name":"fractal","email":"contact@wearefractal.com"}]}},"readme":"propagit\n========\n\nCascading multi-server git deployment.\n\n[![build status](https://secure.travis-ci.org/substack/propagit.png)](http://travis-ci.org/substack/propagit)\n\nexample\n=======\n\nFirst start up a hub server to listen for git deploys:\n\n    $ propagit hub --port=6000 --secret=beepboop\n    control service listening on :6000\n    git service listening on :6001\n\nthen spin up as many drones as necessary on other machines\nwith the command to run on deployment for each type of service:\n\n    $ propagit drone --hub=hubhost:6000 --secret=beepboop\n\nNow you can `git push` to the hub and the drones will `git fetch` from the hub.\nJust do:\n\n    $ cd ~/projects/somerepo\n    $ git push http://hubhost:6001/somerepo master\n\nFirst deploy the code to a fresh deploy directory for the given repo name and\ncommit hash:\n\n    $ propagit deploy --hub=hubhost:6000 --secret=beepboop \\\n      somerepo ed56c6e85731d412fe22cf437cb63130afc34b07\n\nthen spawn processes for that deployment:\n\n    $ propagit spawn --hub=hubhost:6000 --secret=beepboop \\\n      somerepo ed56c6e85731d412fe22cf437cb63130afc34b07 \\\n      -- node server.js 8085\n\nusage\n=====\n\n```\nUsage:\n  propagit OPTIONS hub\n\n    Create a server to coordinate drones.\n\n    --port       port to listen on\n    --secret     password to use\n    --basedir    directory to put repositories\n\n  propagit OPTIONS drone\n\n    Listen to the hub for deploy events to execute commands with\n    environment variables $REPO and $COMMIT set on each deploy.\n \n    --hub        connect to the hub host:port\n    --secret     password to use\n    --basedir    directory to put repositories and deploys in\n  \n  propagit OPTIONS deploy REPO COMMIT\n  \n    Deploy COMMIT to all of the drones listening to the hub.\n\n    --hub        connect to the hub host:port\n    --secret     password to use\n  \n  propagit OPTIONS spawn REPO COMMIT [COMMAND...]\n  \n    Run COMMAND on all the drones specified by OPTIONS.\n    $PROCESS_ID and $DRONE_ID will be set for every spawned process.\n    Note that $PROCESS_ID is not the system PID value.\n\n  propagit OPTIONS ps\n  \n    List all the running processes on all the drones.\n```\n\nmethods\n=======\n\nvar propagit = require('propagit')\n\nvar p = propagit(opts)\n----------------------\n\nCreate a new propagit object with `opts`:\n\n* secret - authenticate with this passphrase\n* hub - if specified, connect to this hub\n\np.drone()\n---------\n\nRegister with the connected hub as a drone.\n\np.listen(controlPort, gitPort)\n------------------------------\n\nCreate a new hub on `controlPort` and start a git http server on `gitPort`.\n\np.use(fn)\n---------\n\nModify the dnode server or client service with `fn(service)`.\n\nIn server mode the `fn` also gets a `conn` object: `fn(service, conn)`.\n\ninstall\n=======\n\nWith [npm](http://npmjs.org) do:\n\n    npm install -g propagit\n","maintainers":[{"email":"contact@wearefractal.com","name":"fractal"},{"email":"ericbombhax@gmail.com","name":"yocontra"}],"time":{"modified":"2022-06-24T20:06:51.384Z","created":"2012-12-11T16:30:34.475Z","0.6.4":"2012-12-11T16:30:35.796Z","0.6.5":"2012-12-12T17:22:29.546Z","0.6.6":"2012-12-12T18:31:28.703Z","0.6.7":"2012-12-13T17:45:09.131Z","0.6.8":"2012-12-17T21:01:17.050Z","0.6.9":"2012-12-17T21:05:02.184Z","0.6.10":"2013-01-04T00:27:14.347Z","0.6.11":"2013-01-04T00:53:32.501Z"},"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"repository":{"type":"git","url":"git://github.com/substack/propagit.git"},"keywords":["git","deploy","multi-server","cluster"],"license":"MIT","readmeFilename":"README.markdown"}