Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
readme.markdown

        /          /         
   _   /_  __.  __/  __ , , ,
  /_)_/ /_(_/|_(_/_ (_)(_(_/_
  .-----..-----..--------.
  |     ||  _  ||        |
  |__|__||   __||__|__|__|
         |__|             

shadow-npm

use npm to manage your private modules, without having to replicate all of npm.

Usage

create a private registry named rego for npm users you and your friends jim, paul, and emma

curl -X PUT 'http://shadow-npm.net/rego?admins=you&readers=jim,paul,emma'

publish a module to it!

npm config set always-auth true
cd path/to/private/module
npm publish --registry http://rego.shadow-npm.net

How it Works

shadow-npm works a lot like putting something at the front of your $PATH when searching for a module, look there first, and if you don't find it, check the next place in the chain.

shadow-npm does this for npm, by proxying all requests, it checks for modules in your private npm first. then, if it does not find them, it will retrive them from the real npm! this works even if you have a private module with open source dependencies!

Trouble Shooting

post issues here: https://github.com/dominictarr/shadow-npm/issues

if something does not work on shadow-npm, but it does with regular npm, post the issue here. do not post the issue on npm's github page.

this is a test launch, so bugs are expected. all feedback is warmly welcomed!

send to either:

Search

  npm search --registry http://rego.shadow-npm.net

https

today, there is only http. I'll get https tomorrow. must sleep now.

User Authentication

shadow-npm copies your couchdb user from the npm registry, and uses couchdb to auth against it. the your password is hashed, and shadow-npm never reads it.

read the shadow-npm code here: https://github.com/dominictarr/shadow-npm

Licence

MIT licence, Dominic Tarr, 2011.

(not isaacs, joyent, etc. please don't bug them if this doesn't work)

Something went wrong with that request. Please try again.