npm-registry-couchapp v3.0.0
npm-registry-couchapp
deprecation notice: as npm has scaled, the registry architecture has gradually migrated towards a complex distributed architecture, of which npm-registry-couchapp is only a small part. FOSS is an important part of npm, and over time we plan on exposing more APIs, and better documenting the existing API.
npm-registry-couchapp is still a core part of our functionality, but all new registry features are now added to the micro-services that now make up npm. For this reason, we will not be accepting any pull requests, or making any changes to this codebase going forward.
For issues with the npmjs.com website, please open an issue on the npm/www repo. For issues wih the registry service (for example, slow package downloads, or inability to publish a package), see the npm/registry repo.
The design doc for The npm Registry CouchApp
Installing
You need CouchDB version 1.4.0 or higher. 1.5.0 or higher is best.
Once you have CouchDB installed, create a new database:
curl -X PUT http://localhost:5984/registryYou'll need the following entries added in your local.ini
[couch_httpd_auth]
public_fields = appdotnet, avatar, avatarMedium, avatarLarge, date, email, fields, freenode, fullname, github, homepage, name, roles, twitter, type, _id, _rev
users_db_public = true
[httpd]
secure_rewrites = false
[couchdb]
delayed_commits = falseClone the repository if you haven't already, and cd into it:
git clone git://github.com/npm/npm-registry-couchapp
cd npm-registry-couchappNow install the stuff:
npm installSync the ddoc to _design/scratch
npm start \
--npm-registry-couchapp:couch=http://admin:password@localhost:5984/registryNext, make sure that views are loaded:
npm run load \
--npm-registry-couchapp:couch=http://admin:password@localhost:5984/registryAnd finally, copy the ddoc from _design/scratch to _design/app
npm run copy \
--npm-registry-couchapp:couch=http://admin:password@localhost:5984/registryOf course, you can avoid the command-line flag by setting it in your ~/.npmrc file:
_npm-registry-couchapp:couch=http://admin:password@localhost:5984/registryThe _ prevents any other packages from seeing the setting (with a
password) in their environment when npm runs scripts for those other
packages.
Replicating the Registry
To replicate the registry without attachments, you can point your CouchDB replicator at https://skimdb.npmjs.com/registry. Note that attachments for public packages will still be loaded from the public location, but anything you publish into your private registry will stay private.
To replicate the registry with attachments, consider using npm-fullfat-registry. The fullfatdb CouchDB instance is deprecated.
Using the registry with the npm client
With the setup so far, you can point the npm client at the registry by putting this in your ~/.npmrc file:
registry = http://localhost:5984/registry/_design/app/_rewriteYou can also set the npm registry config property like:
npm config set \
registry=http://localhost:5984/registry/_design/app/_rewriteOr you can simple override the registry config on each call:
npm \
--registry=http://localhost:5984/registry/_design/app/_rewrite \
install <package>Optional: top-of-host urls
To be snazzier, add a vhost config:
[vhosts]
registry.mydomain.com:5984 = /registry/_design/app/_rewriteWhere registry.mydomain.com is the hostname where you're running the
thing, and 5984 is the port that CouchDB is running on. If you're
running on port 80, then omit the port altogether.
Then for example you can reference the repository like so:
npm config set registry http://registry.mydomain.com:59846 years ago
6 years ago
6 years ago
6 years ago
8 years ago
8 years ago
8 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
12 years ago