Hi Osher,
There are multiple options for setting up a private repo, unfortunately
none of them is ideal.
1. Create a replica of npmjs.org
2. Setup your own registry using CouchDB and npmjs code, but don't
replicate the public registry
3. Use a different registry server, e.g. reggie [1] mentioned by Andy
Let's check your requirements:
we don't want to host an entire replica of the npm (which is *HUGE *these
> days, and growing)
> i.e - the private replica should hold only our packages, the rest can come
> from the public repo
This is true for options 2 and 3.
publishing should direct to our repo
This can be achieved with all three options. Either add the following line
to your package.json
"publishConfig": { "registry": "http://private/registry/url" }
or use the reggie CLI client for publishing the packages.
install should take our packages from our repo, and public packages from
> the global repo
The npm client does not support multiple repositories at the moment, even
though there are plans to get this implemented in the next few
weeks/months. Unless you have a replica of npmjs.org (option 1), you must
use different way for installing and referencing packages from public and
private repository.
With couchdb-based registry, you can use absolute URL to the tarball of the
desired version. (This means you can't specify a fuzzy version like ~0.5.2.)
Node reggie implements several kinds of package URLs to support fuzzy
version specification. See project README [1] for more details.
It may be possible to overcome this limitation by sticking an npm proxy [2]
in front of your private registry.
users in local repo should match users in global repo
You will get this for free with npmjs.or replica.
If its possible to setup CouchDB replication in such way that only users
are replicated, then you can get this functionality with non-replicated
CouchDB-based registry too.
Reggie does not implement authentication and authorization at the moment -
it will happily accept (and ignore) whatever credentials are sent by the
npm client.
I hope you will find this helpful, don't hesitate to ask if there is
anything else not clear.
Miroslav
[1] https://github.com/mbrevoort/node-reggie
[2] https://npmjs.org/package/npm-proxy
On Wednesday, July 31, 2013 6:51:21 PM UTC+2, Osher E wrote:
>
> oups, sorry for the resending,
> but I forgot to mention another problem we had -
>
> - users in local repo should match users in global repo
>
> it sounds so simple, but we had problems with that
> (all the part with npm adduser and stuff)
>
>
> On Wed, Jul 31, 2013 at 7:36 PM, Osher El-Netanany
> <[email protected]<javascript:>
> > wrote:
>
>> Hi all,
>>
>> 'ok, this is kind'a embarrassing a little,
>> we've tried few times in few ways but still did not get it right:
>>
>> - we're trying to set a local npm repo for our packages
>> - we don't want to host an entire replica of the npm (which is *HUGE
>> *these
>> days, and growing)
>> i.e - the private replica should hold only our packages, the rest can
>> come from the public repo
>> - publishing should direct to our repo
>> - install should take our packages from our repo, and public packages
>> from the global repo
>>
>> What's the best way to do it?
>> What's the best contemporary tutorial/doc/explanation about it on the web?
>>
>> Thanks...
>> Don
>>
>
>
--
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.