browsenpm
Version:
Browse packages, users, code, stats and more the public npm registry in style.
77 lines (54 loc) • 2.58 kB
Markdown
browsenpm.org
=============
Browse packages, users, code, stats and more the public npm registry in style.
### Installation
Browsenpm.org has several dependencies to run locally for development purposes.
```bash
sudo apt-get install redis-server couchdb
npm install
```
After update the configuration in `development.json` and provide the details
needed. Note that your database might require authentication credentials.
### Running
```bash
npm start
# Or run the server by specifying a configuration file.
bin/server -c config.dev.json
```
Providing a custom configuration is optional. By default `development.json`
will be used.
### Database
Both Redis and CouchDB should be running to cache data for certain pagelets. Make
sure you run them locally or provide a server that runs either.
CouchDB will be used to cache all the data of [npm-probe]. The views in
`plugins/couchdb.json` should be available on the database to ensure the
pagelet can fetch the data. These views will be added to the `browsenpm` database
on startup.
### Status npm-mirrors
The current registry status is provided via [npm-probe]. Several probes are run at
set intervals. The publish probe requires authentication with `npm-probe`. These
credentials can (and are) provided to the configuration of the [npm-probe] instance.
npm-probe is provided with a CouchDB cache instance. All data is stored in the
database `browsenpm`.
When running multiple instances of browsenpm.org accessible via balancers, make
sure to only start npm-probe once. Set the environment variable `PROBE=silent` to
prevent an instance from collecting data.
[npm-probe]: https://github.com/Moveo/npm-probe
### Cache
During development it might be useful to destroy cached data, simply set any of the
following environment variables to flush cache.
```bash
CACHE=flush:redis
CACHE=flush:couchdb
```
### Debugging
Most components have debug statements to help debugging, shortlist:
| Module | Description | Statement |
| --------- | -------------- | ------------------------------------ |
| bigpipe | all components | `DEBUG=bigpipe:*` |
| bigpipe | server | `DEBUG=bigpipe:server` |
| bigpipe | pages | `DEBUG=bigpipe:page` |
| bigpipe | pagelets | `DEBUG=bigpipe:pagelet` |
| npm-probe | statistics | `DEBUG=npm-probe` |
| dynamis | cache layer | `DEBUG=dynamis` |
| ALL | every module | `DEBUG=bigpipe:*,dynamis,npm-probe` |