{"_id":"strong-central","_rev":"213-2ed1e781918449701dd57e11704f5c4e","name":"strong-central","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"strong-central","version":"1.0.0","author":{"name":"Krishna Raman","email":"kraman@strongloop.com"},"license":"LicenseRef-LICENSE.md","_id":"strong-central@1.0.0","maintainers":[{"name":"octet","email":"sam@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-central","bugs":{"url":"https://github.com/strongloop/strong-central/issues"},"bin":{"sl-central":"bin/sl-central.js","sl-central-install":"bin/sl-central-install.js"},"dist":{"shasum":"c6cc2e3524e1adad4f458eb921fdd5070a9434d0","tarball":"https://registry.npmjs.org/strong-central/-/strong-central-1.0.0.tgz","integrity":"sha512-hqvtBAy5DulIvgFrQaj5lzabA/BXL1iEs9O3xGZVEn/bnAmMnIPmWRf+ygTg1NCgZn/uSYXdbXylqeo7mCm+lg==","signatures":[{"sig":"MEYCIQCX4+NwDMVOVpgN0YH1nA6/5I+qn3QBamsNNnUAXdlOHAIhALFDD2xoCvz94QzmxGorHwbd+zCHlTbMcvJzcOwoujPj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"c6cc2e3524e1adad4f458eb921fdd5070a9434d0","gitHead":"67b680dcc550235a09fefdd4db70ccd8cadc9471","scripts":{"test":"tap --bail --coverage --coverage-report=cobertura --timeout=200 test/test-*.*","pretest":"eslint --ignore-path .gitignore . && jscs ./","posttest":"nyc report --reporter=lcov && nyc report"},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git://github.com/strongloop/strong-central.git","type":"git"},"_npmVersion":"2.11.0","description":"StrongLoop Central","directories":{},"_nodeVersion":"2.2.1","dependencies":{"tar":"^2.1.1","async":"^1.0.0","debug":"^2.2.0","lodash":"^3.9.3","mkdirp":"^0.5.1","rimraf":"^2.4.0","express":"^4.12.4","fstream":"^1.0.6","loopback":"^2.18.0","minkelite":"^1.1.0","posix-getopt":"^1.1.0","loopback-boot":"^2.8.0","strong-tunnel":"^1.1.0","strong-spawn-npm":"^1.0.0","strong-fork-cicada":"^1.1.2","strong-mesh-models":"^8.0.0","strong-url-defaults":"^1.0.0","strong-control-channel":"^2.0.0","strong-service-install":"^2.0.0-0","loopback-connector-sqlite3":"^1.0.0"},"devDependencies":{"nyc":"^3.0.0","tap":"^1.2.0","jscs":"^1.13.0","eslint":"^0.24.0","mktmpdir":"^0.1.0"}},"1.0.1":{"name":"strong-central","version":"1.0.1","author":{"name":"Krishna Raman","email":"kraman@strongloop.com"},"license":"LicenseRef-LICENSE.md","_id":"strong-central@1.0.1","maintainers":[{"name":"octet","email":"sam@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-central","bugs":{"url":"https://github.com/strongloop/strong-central/issues"},"bin":{"sl-central":"bin/sl-central.js","sl-central-install":"bin/sl-central-install.js"},"dist":{"shasum":"31421f841365a6849edf1647cc25b02d21538ee2","tarball":"https://registry.npmjs.org/strong-central/-/strong-central-1.0.1.tgz","integrity":"sha512-InQgLvYkm5GjKmNJvM2mlRrSdJ/INNw53/OxDDUruLjWlSUNGrIrG17eYpXVluhUlfcJ86CSiZs9Wouh1xFIeg==","signatures":[{"sig":"MEYCIQDxDpeA6r/4CVe0l/Kg9FsOqO0xuUtsk1UAfrOws7xd1gIhAPEuXmdvifUiZVQwUG/K7t6aHzQeAQc49ePwSGamuT+/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"31421f841365a6849edf1647cc25b02d21538ee2","gitHead":"7649d40d8df36971dd8b02f0e0ea02a7abf34d12","scripts":{"test":"tap --bail --coverage --coverage-report=cobertura --timeout=200 test/test-*.*","pretest":"eslint --ignore-path .gitignore . && jscs ./","posttest":"nyc report --reporter=lcov && nyc report"},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git://github.com/strongloop/strong-central.git","type":"git"},"_npmVersion":"2.11.0","description":"StrongLoop Central","directories":{},"_nodeVersion":"2.2.1","dependencies":{"tar":"^2.1.1","async":"^1.0.0","debug":"^2.2.0","lodash":"^3.9.3","mkdirp":"^0.5.1","rimraf":"^2.4.0","express":"^4.12.4","fstream":"^1.0.6","loopback":"^2.18.0","minkelite":"^1.1.0","posix-getopt":"^1.1.0","loopback-boot":"^2.8.0","strong-tunnel":"^1.1.0","strong-spawn-npm":"^1.0.0","strong-fork-cicada":"^1.1.2","strong-mesh-models":"^8.0.0","strong-url-defaults":"^1.0.0","strong-control-channel":"^2.1.0","strong-service-install":"^2.0.0-0","loopback-connector-sqlite3":"^1.0.0"},"devDependencies":{"nyc":"^3.0.0","tap":"^1.2.0","jscs":"^1.13.0","eslint":"^0.24.0","mktmpdir":"^0.1.0"}},"2.0.0":{"name":"strong-central","version":"2.0.0","author":{"name":"Krishna Raman","email":"kraman@strongloop.com"},"license":"LicenseRef-LICENSE.md","_id":"strong-central@2.0.0","maintainers":[{"name":"octet","email":"sam@strongloop.com"},{"name":"strongloop","email":"callback@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-central","bugs":{"url":"https://github.com/strongloop/strong-central/issues"},"bin":{"sl-central":"bin/sl-central.js","sl-central-install":"bin/sl-central-install.js"},"dist":{"shasum":"f5068d5b794d92c03ebed9e9f61dc4d4689e4cb9","tarball":"https://registry.npmjs.org/strong-central/-/strong-central-2.0.0.tgz","integrity":"sha512-7ltimWOtRxD1mFSqacvEGsCCCATrzAxI5rvpaNxtRQIRwlWA5usRwoewGPTC/pNkfgp+/hOBANo/LHyM5V6kPQ==","signatures":[{"sig":"MEYCIQD6HtjJ4c7FK5kKtVpWUd5VfnKDGmNHy9em4w9rTzN3CQIhAOGwO5ps20pzpDmY/+SpDYFzXhdCt9ocIEdgfIS5GQtn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f5068d5b794d92c03ebed9e9f61dc4d4689e4cb9","gitHead":"c8dafa572e4bf6fe27b3a4f34da0950f1433aca7","scripts":{"test":"tap --bail --coverage --coverage-report=cobertura --timeout=200 test/test-*.*","pretest":"eslint --ignore-path .gitignore . && jscs ./","posttest":"nyc report --reporter=lcov && nyc report"},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git://github.com/strongloop/strong-central.git","type":"git"},"_npmVersion":"2.13.3","description":"StrongLoop Central","directories":{},"_nodeVersion":"3.0.0","dependencies":{"tar":"^2.1.1","async":"^1.0.0","debug":"^2.2.0","lodash":"^3.9.3","mkdirp":"^0.5.1","rimraf":"^2.4.0","express":"^4.12.4","fstream":"^1.0.6","loopback":"^2.18.0","minkelite":"^1.1.0","posix-getopt":"^1.1.0","loopback-boot":"^2.8.0","strong-tunnel":"^1.1.0","strong-spawn-npm":"^1.0.0","strong-fork-cicada":"^1.1.2","strong-mesh-models":"^8.0.0","strongloop-license":"^1.4.0","strong-url-defaults":"^1.0.0","strong-control-channel":"^2.1.0","strong-service-install":"^2.0.0-0","loopback-connector-sqlite3":"^1.0.0"},"devDependencies":{"nyc":"^3.0.0","tap":"^1.2.0","jscs":"^1.13.0","eslint":"^0.24.0","mktmpdir":"^0.1.0"}}},"time":{"created":"2015-07-21T23:37:53.329Z","modified":"2026-04-14T15:10:36.660Z","1.0.0":"2015-07-21T23:37:53.329Z","1.0.1":"2015-07-27T23:51:14.448Z","2.0.0":"2015-08-20T16:52:56.755Z"},"bugs":{"url":"https://github.com/strongloop/strong-central/issues"},"author":{"name":"Krishna Raman","email":"kraman@strongloop.com"},"license":"LicenseRef-LICENSE.md","homepage":"https://github.com/strongloop/strong-central","repository":{"url":"git://github.com/strongloop/strong-central.git","type":"git"},"description":"StrongLoop Central","maintainers":[],"readme":"# strong-central\n\nThis module works in concert with `strong-executor` and `strong-mesh-models` \nto provide \"mesh\" functionality that enables you to deploy an application \nonce and have it deploy to multiple hosts running StrongLoop Executor.\n\n**NOTE**: These modules and their commands work have only been tested\non Linux systems, but should work on OS X and Windows.\n\n- [Basic procedure](#basic-procedure)\n- [Command reference](#command-reference)\n  - [sl-central](#sl-central)\n  - [sl-central-install](#sl-central-install)\n  - [sl-executor](#sl-executor)\n  - [sl-executor-install](#sl-executor-install)\n  - [sl-meshadm](#sl-meshadm)\n  - [sl-meshctl](#sl-meshctl)\n\n## Basic procedure\n\n### 1. Install StrongLoop Central\n\n```\n$ npm install -g strong-central \n```\nThis makes the commands `sl-central` and `sl-central-install` available.\n\n### 2. Start StrongLoop Central\n\nInstall and start as a service: \n```\n$ sudo sl-central-install\n$ sudo /sbin/initctl start strong-central\n```\n\nOR run it as a transient process:\n```\n$ sl-central\n```\n\n### 3. Install strong-mesh-models\nYou can install this on the same host as StrongLoop Central, or on a different system.\n\n```\n$ npm install -g strong-mesh-models\n```\nThis makes the commands `sl-meshadm` and `sl-meshctl` available.\n\n### 4. Create an executor ID\n\n```\n$ sl-meshadm -C http://<central_host>:8701 exec-create\n```\nOR if you installed strong-mesh-models on the same host as StrongLoop Central:\n```\n$ sl-meshadm exec-create\n```\n\nWhere:\n- `<central_host>` is the host where you installed StrongLoop Central.\n\nYou’ll see a response in the console like:\n```\nCreated Executor id: 1 token: \"7cfec40c3188b4cca2dabcddceb10cc900910ed633b524cc\"\n```\n\n### 5. Install executor \n\nOn each production host where you want to run Process Manager and host applications, install executor:\n\n```\n$ npm install -g strong-executor \n```\nThis makes the commands `sl-executor` and `sl-executor-install` available.\n\n### 6. Run executor\n\nInstall and start as a service:\n```\n$ sudo sl-executor-install  -C http://<token>@<central_host>:8701\n$ sudo /sbin/initctl start strong-executor\n```\nOR run as a transient process:\n```\n$ sl-executor -C http://<token>@<central_host>:8701\n```\n\nWhere:\n- `<token>` is the executor token generated in step 4.\n- `<central_host>` is the host where you installed StrongLoop Central.\n\nIf you ran `sl-executor`, you’ll see a response in the console like:\n```\nsl-executor: connected to http://<token>@<central_host>:8701\n```\n\nIf you installed and started the service, you'll just see a message that the\nservice is running.\n\n### 7. Deploy an app from your machine to StrongLoop Central \n\n```\n$ slc deploy http://<central_host>:8701\n```\n\nThis will deploy the app to all the executor hosts.\n\n### 8. Use the `sl-meshctl` command to control your applications\n\n```\n$ sl-meshctl -C http://<central_host>:8701 \n```\n\n**NOTE** This command has the same sub-commands and options as [slc ctl](http://docs.strongloop.com/display/NODE/slc+ctl).\n\n## Command reference\n\n- [sl-central](#sl-central)\n- [sl-central-install](#sl-central-install)\n- [sl-executor](#sl-executor)\n- [sl-executor-install](#sl-executor-install)\n- [sl-meshadm](#sl-meshadm)\n- [sl-meshctl](#sl-meshctl)\n\n### sl-central\n\n```\nsl-central [options]\n\nThe Strongloop Central.\n\nOptions:\n  -h,--help         Print this message and exit.\n  -v,--version      Print version and exit.\n  -b,--base BASE    Base directory to work in (default `.strong-central`).\n  -l,--listen PORT  Listen on PORT for git pushes (default 8701).\n\nThe base directory is used to save deployed applications, for working\ndirectories, and for any other files that need to be created.\n\nStrongloop Central will be controllable via HTTP on the port specified. That\nport is also used for deployment with strong-deploy. Basic authentication\ncan be enabled for HTTP by setting the STRONGLOOP_PM_HTTP_AUTH environment\nvariable to <user>:<pass> (eg. strong-central:super-secret).\n\nIt is also controllable using local domain sockets, which look like file paths,\nand the listen path can be changed or disabled. These sockets do not support\nHTTP authentication.\n```\n\n### sl-central-install\n\n```\nsl-central-install [options]\n\nInstall StrongLoop Mesh Central as a service.\n\nOptions:\n  -h,--help           Print this message and exit.\n  -v,--version        Print version and exit.\n  -b,--base BASE      Base directory to work in (default is $HOME of the user\n                      that central is run as, see --user).\n  -u,--user USER      User to run central as (default is strong-central).\n  -p,--port PORT      Listen on PORT (default 8701).\n  -n,--dry-run        Don't write any files.\n  -j,--job-file FILE  Path of Upstart job to create (default is\n                      `/etc/init/strong-central.conf`).\n  -f,--force          Overwrite existing job file if present.\n  --upstart VERSION   Specify Upstart version, 1.4 or 0.6 (default is 1.4).\n  --systemd           Install as a systemd service, not an Upstart job.\n  --http-auth CREDS   Enable HTTP authentication using Basic auth, requiring\n                      the specified credentials for every request sent to the\n                      REST API where CREDS is given in the form of\n                      `<user>:<pass>`.\n\nOS Service support:\n\nThe --systemd and --upstart VERSION options are mutually exclusive.  If neither\nis specified, the service is installed as an Upstart job using a template that\nassumes Upstart 1.4 or higher.\n```\n\n### sl-executor\n\n```\nsl-executor [options]\n\nThe Strongloop executor.\n\nOptions:\n  -h,--help           Print this message and exit.\n  -v,--version        Print version and exit.\n  -b,--base BASE      Base directory to work in (default `.strong-executor`).\n  -C,--control URL    Connect to central at this URL.\n  -P,--base-port PORT Applications run on `PORT + instance ID` (default 3000).\n\nThe base directory is used to save deployed applications, for working\ndirectories, and for any other files the executor needs to create.\n```\n\n### sl-executor-install\n\n```\nsl-executor-install [options]\n\nInstall the StrongLoop Mesh Executor as a service.\n\nOptions:\n  -h,--help           Print this message and exit.\n  -v,--version        Print version and exit.\n  -b,--base BASE      Base directory to work in (default is $HOME of the user\n                      that executor is run as, see --user).\n  -C,--control URL    Connect to central at this URL.\n  -u,--user USER      User to run executor as (default is strong-executor).\n  -P,--base-port PORT Applications run on PORT + instance ID (default 3000).\n  -n,--dry-run        Don't write any files.\n  -j,--job-file FILE  Path of Upstart job to create (default is\n                      `/etc/init/strong-executor.conf`).\n  -f,--force          Overwrite existing job file if present.\n  --upstart VERSION   Specify Upstart version, 1.4 or 0.6 (default is 1.4).\n  --systemd           Install as a systemd service, not an Upstart job.\n\nOS Service support:\n\nThe --systemd and --upstart VERSION options are mutually exclusive.  If neither\nis specified, the service is installed as an Upstart job using a template that\nassumes Upstart 1.4 or higher.\n```\n\n### sl-meshadm\n\n```\nsl-meshadm [options] [command ...]\n\nAdministration of the Strongloop Mesh.\n\nOptions:\n  -h,--help               Print help and exit.\n  -v,--version            Print version and exit.\n  -C,--control CTL        Control endpoint for process manager.\n\nThe control endpoint for the process manager is searched for if not specified,\nin this order:\n\n1. `STRONGLOOP_PM` in environment: may be a local domain path, or an HTTP URL.\n2. `http://localhost:8701`: a process manager running on localhost\n\nExecutor commands:\n\n`EXEC` is the executor ID. It can be obtained by listing executors using\n`exec-list`.\n\n  exec-create             Create an executor.\n  exec-remove EXEC        Remove executor EXEC.\n  exec-list               List executors.\n  exec-shutdown EXEC      Shutdown executor EXEC.\n```\n\n### sl-meshctl\n\n```\nsl-meshctl [options] [command ...]\n\nRun-time control of the Strongloop process manager.\n\nOptions:\n  -h,--help               Print help and exit.\n  -v,--version            Print version and exit.\n  -C,--control CTL        Control endpoint for process manager.\n\nThe control endpoint for the process manager is searched for if not specified,\nin this order:\n\n1. `STRONGLOOP_PM` in environment: an HTTP URL.\n2. `http://localhost:8701`: a process manager running on localhost\n\nAn HTTP URL is mandatory for remote process managers, but can also be used on\nlocalhost. If the process manager is using HTTP authentication\nthen valid credentials must be set in the URL directly, such as\n`http://user-here:pass-here@example.com:7654`.\n\nWhen using an HTTP URL, it can optionally be tunneled over ssh by changing the\nprotocol to `http+ssh://`. The ssh username will default to your current user\nand authentication defaults to using your current ssh-agent. The username can be\noverridden by setting an `SSH_USER` environment variable. The authentication can\nbe overridden to use an existing private key instead of an agent by setting the\n`SSH_KEY` environment variable to the path of the private key to be used.\n\n\nGlobal commands: apply to the process manager itself\n\n  info                    Information about the process manager.\n  ls                      List services.\n  shutdown                Shutdown the process manager.\n\n\nService commands: apply to a specific service\n\n`SVC` is either a service ID or service Name. It can be obtained by listing\nservices using `ls` or `status`.\n\n  create NAME             Create service named NAME.\n\n  cluster-restart SVC     Restart the service SVC cluster workers.\n        This is a zero-downtime restart, the workers are soft restarted\n        one-by-one, so that some workers will always be available to service\n        requests.\n\n  env[-get] SVC [KEYS...]\n        List specified environment variables for service SVC. If none are\n        specified, list all variables.\n  env-set SVC K=V...      Set one or more environment variables for service SVC.\n  env-unset SVC KEYS...\n        Unset one or more environment variables for service SVC. The\n        environment variables are applied to the current application, and the\n        application is hard restarted with the new environment after change\n        (either set or unset).\n\n  log-dump SVC [--follow]\n        Empty the log buffer, dumping the contents to stdout for service SVC.\n        If --follow is given the log buffer is continuously dumped to stdout.\n\n  npmls SVC [DEPTH]       List dependencies of the service.\n\n  remove SVC              Remove a service SVC.\n\n  restart SVC             Hard stop and restart service SVC with new config.\n\n  set-size SVC N          Set cluster size for service SVC to N workers.\n        The default cluster size is the number of CPU cores.\n\n  start SVC               Start service SVC.\n\n  status [SVC]            Report status for service SVC, or all services if\n        no SVC is provided. This is the default command.\n\n  stop SVC                Hard stop service SVC.\n\n  soft-stop SVC           Soft stop service SVC.\n  soft-restart SVC        Soft stop and restart service SVC with new config.\n        \"Soft\" stops notify workers they are being disconnected, and give them\n        a grace period for any existing connections to finish. \"Hard\" stops\n        kill the supervisor and its workers with `SIGTERM`.\n\n  tracing-start SVC       Restart all workers with tracing on.\n\n  tracing-stop SVC        Restart all workers with tracing off.\n\n\nWorker commands: apply to a specific worker\n\nA `WRK` specification is either `<SVC>.1.<PID>` or `<SVC>.1.<WID>`, where SVC\nis the service ID, `1` is the executor ID (limited to 1 in this release), and\nthe final part is either the process ID, or the cluster worker ID.\n\nThe WRK specification can be copied directly from the output of the status\ncommand.\n\n  cpu-start WRK [TO [ST]]  Start CPU profiling on worker WRK.\n        When TO is 0, starts the CPU profiler.\n\n        Only supported on Linux:\n          TO is the optional Smart Profiling timeout, in milliseconds (default\n          is 0, no timeout). With a timeout, the profiler is activated when\n          an event loop stalls longer than TO; i.e. when a script runs for too\n          long. The profiling is suspended after the script returns to the\n          event loop.\n\n          ST is the number of stalls after which the profiler is stopped\n          automatically (default is 0, never auto-stop). View an auto-stopped\n          profile with `slc arc`.\n\n  cpu-stop WRK [NAME]      Stop CPU profiling on worker WRK.\n        The profile is saved as `<NAME>.cpuprofile`. CPU profiles must be\n        loaded into Chrome Dev Tools. The NAME is optional, and defaults to\n        `node.<WRK>`.\n\n  heap-snapshot WRK [NAME] Save heap snapshot for worker WRK.\n        The snapshot is saved as `<NAME>.heapsnapshot`.  Heap snapshots must be\n        loaded into Chrome Dev Tools. The NAME is optional, and defaults to\n        `node.<WRK>`.\n\n  objects-start WRK        Start tracking objects on worker WRK.\n  objects-stop WRK         Stop tracking objects on worker WRK.\n        Object tracking is published as metrics, and requires configuration so\n        that the `--metrics=URL` option is passed to the runner.\n\n  patch WRK FILE           Apply patch FILE to worker WRK.\n","readmeFilename":"README.md"}