The npm_registry cookbook installs and configures an NPM package registry using the official NPM project layout. Includes support for replicating the official isaacs NPM registry (continuously or scheduled).
If you are installing this locally (such as with Vagrant), it is recommended you set the following attributes:
node['couch_db']['httpd']['bind_address'] = '0.0.0.0'
node['couch_db']['httpd']['secure_rewrites'] = false
This cookbook also makes use of the couch_db attributes:
node['couch_db']['config']['couchdb']['httpsd']
node['couch_db']['config']['httpd']['port']
node['couch_db']['config']['couchdb']['database_dir']
- Ubuntu
Tested on:
- Ubuntu 12.04
- Ubuntu 12.10
Requires Opscode's git and couchdb cookbooks and Marius Ducea's nodejs cookbook. Opscode's cron cookbook is only required if using scheduled replication. See Attributes and Usage for more information.
See the attributes/defaults.rb for default values.
node['npm_registry']['git']['url']
- The URL to NPM's registry repository. Attribute is provided in case the repository is ever moved.node['npm_registry']['git']['reference']
- The branch or tag name to checkout from the Git repository.node['npm_registry']['isaacs']['registry']['url']
- The URL to the official NPM registry (used for replication).node['npm_registry']['replication']['flavor']
- Allowed values:none
,scheduled
orcontinuous
node['npm_registry']['replication']['scheduled']['minute']
- The scheduled minute value.node['npm_registry']['replication']['scheduled']['hour']
- The scheduled hour value.node['npm_registry']['replication']['scheduled']['weekday']
- The scheduled weekday value.node['npm_registry']['replication']['scheduled']['day']
- The scheduled day value.node['npm_registry']['replication']['scheduled']['month']
- The scheduled month value.
To install and configure the default NPM package registry, use:
{ "run_list": ["recipe[npm_registry]"] }
For scheduled replication, use:
{ "run_list": ["recipe[cron]", "recipe[npm_registry]"] }
This cookbook includes support for running tests via FoodCritic, ChefSpec, Kitchen and Minitest.
-
Install Vagrant, Gem, Cookbook and Vagrant plugin dependencies:
vagrant plugin install vagrant-berkshelf bundle install berks install
-
Run Vagrant instance with default attributes:
vagrant up
-
Run FoodCritic, ChefSpec, Kitchen and Minitest:
strainer test