UNPKG

mongo-replica-set

Version:

Command-line tool and API for setting up MongoDB replica sets on localhost. Useful for development purposes.

118 lines (84 loc) 2.64 kB
# mongo-replica-set Command-line tool and API to quickly setup a MongoDB host or replica set for development purposes, based on the [official tutorial](http://docs.mongodb.org/manual/tutorial/deploy-replica-set-for-testing/). ## Installation To use the API: ```bash $ npm install mongo-replica-set ``` To use the command-line tool install globally: ```bash $ npm install -g mongo-replica-set ``` ## Usage ### Command-line ```bash Usage: mongo-replica-set [options] Options: -h, --help output usage information -V, --version output the version number -d, --data [folder] Base folder for data storage (Default: auto-created folder in system temp folder) -n, --num [num] No. of instances to launch (Default: 3) -p, --port [port] Starting port number for instances (Default: 27117) -v, --verbose Verbose output ``` Thus for a basic setup involving 3 `mongod` instances simply run: ```bash $ mongo-replica-set >>> Replica set ready: 127.0.0.1:27117, 127.0.0.1:27118, 127.0.0.1:27119 ``` You can then (in a new terminal window) use `mongo` to connect to the instances, which should be running at `localhost:27117`, `localhost:27118` and `localhost:27119` respectively. Eg: ```bash $ mongo --port 27117 MongoDB shell version: 2.6.5 connecting to: 127.0.0.1:27117/test rs_515_1429031406166:PRIMARY> show dbs; admin (empty) local 0.281GB rs_515_1429031406166:PRIMARY> ``` Press `CTRL+C` in the original window to terminate the instances and clean up the replica set. _Note: If any errors occur during initialisation the command will exit and clean up the replica set instances and data folders._ **Single host** If you specify the number of hosts as 1 then a single non-replica-set host will be launched. ### API Basic usage: ```js var ReplicaSet = require('mongo-replica-set').ReplicaSet; var rs = new ReplicaSet(); // returns a Promise rs.start() .then(function() { // started ok. }) .catch(function(err) { // something went wrong. }); ``` You can pass options to the `ReplicaSet` constructor, similar to the command-line tool: ```js var rs = new ReplicaSet({ numInstances: 5, startPort: 55000, baseFolder: '/opt/data', verbose: true, useColors: false /* Don't use colours when outputting to console */ }); rs.start(); ``` Once the replica set is running you can obtain the `hostname:port` connection strings: ```js var conn = rs.getHosts(); // [ '127.0.0.1:55000', '127.0.0.1:55001', '127.0.0.1:55002'] ``` ## Contributing Contributions are welcome! Please see `CONTRIBUTING.md`. ## LICENSE MIT - see `LICENSE.md`.