What is this?
Private npm registry and web for Enterprise, base on koa,
MySQL and Simple Store Service.
Our goal is to provide a low cost maintenance and easy to use solution for private npm.
What can you do with
- Build a private npm for your own enterprise. (alibaba is using
- Build a mirror NPM. (we use it to build a mirror in China: cnpmjs.org)
- Build a completely independent NPM registry to store whatever you like.
- Support "scoped" packages: npm/npm#5239
- Support CORS
- Simple to deploy: only need
mysql and a simple store system.
You can get the source code through
- Low cost and easy maintenance:
package.json info store in MySQL, MariaDB, SQLite or PostgreSQL databases,
tarball(tgz file) store in CDN or other store systems.
- Automatic synchronization: automatic synchronization from any registry specified, support two sync modes:
- Sync all modules from a specified registry, like npm registry.
- Only sync the modules that exists in your own registry.
- Manual synchronization: automatic synchronization may has little delay, but you can syn immediately by manually.
- Customized client: we provide a client cnpm
npm with more features(
sync command, gzip support).
And it easy to wrap for your own registry which build with
- Compatible with NPM client: you can use the origin NPM client with
only need to change the registry in config. Even include manual synchronization (through
- Version badge: base on shields.io
- Support http_proxy: if you're behind firewall, need to request through http proxy
PROTIP Be sure to read Migrating from 1.x to 2.x
as well as New features in 2.x.
Develop on your local machine
- node >= 4.3.1
- Databases: only required one type
- sqlite3 >= 3.0.2, we use
sqlite3 by default
- MySQL >= 0.5.0, include
mysql cli. I test on
Clone codes and run test
# clone from git
$ git clone https://github.com/cnpm/cnpmjs.org.git
# install dependencies
$ make install
$ make test
$ make test-cov
# update dependencies
$ make autod
# start server with development mode
$ make dev
How to contribute
- Clone the project
- Checkout a new branch
- Add new features or fix bugs in the new branch
- Make a pull request and we will review it ASAP
Tips: make sure your code is following the node-style-guide.
- (2016.2 - now)
- (2015.3 - 2016.3)