npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nodezoo-system

v7.0.1

Published

A fuge config for NodeZoo

Downloads

3

Readme

Nodezoo

nodezoo-system

Nodezoo is a search engine for node modules. The full system currently fetches data from NPM, Github and Travis-CI. It is an example of a real-world service built using Node.js micro-services. Each micro-service is published in its own github repository along with all of the necessary config to run the system locally or live . The codebase is intended to be used as an example, and as a starting point for your own projects.

This repo contains all the required config to spin up a Nodezoo system. The included services represents a production level micro-services system. Follow the instructions below to set up the system on your machine.

Nodezoo Search Page

Search Page

  • The search page shows a minimal, but adequate, amount of information about a module.
    • Module description
    • If it exists on NPM, GitHub or Travis-CI then their respective icons are shown, accompanied by its most recent build status if available
    • The amount of watchers, stars and forks the modules repository has on GitHub

Nodezoo Information Page

Information Page

  • The information page is much more detailed than the search page, neatly displaying all of the important information regarding a module. If there is no NPM, GitHub or Travis-CI information available then the corresponding tile will not be visible. The three micro-services used to retrieve the data are:

Installation Guide

1. Install fuge

To make use of this repo you need to have fuge installed, you can do this via npm,

npm install -g fuge

Note: Fuge 0.6.1 or later is required

2. Install Docker

You need the ability to run docker and for it to be active in your session to run this system. Please see Docker's instructions for more detail on how to install it for your system. To test if docker is available for fuge to make use of, type the following into your terminal,

docker ps -a

If you are prompted with an error saying cannot connect to docker daemon, run the following command:

docker-machine start default

If this command doesn't return a TLS connection issue you are good to go otherwise the following command should connect Docker to your session,

eval $(docker-machine env default)

Try the docker command above again, you should now see some form of output and not the original TLS error.

Running this system causes containers to be created and ran via docker. If you need to stop and/or remove docker containers, the commands are as follows

docker stop $(docker ps -a)
docker rm $(docker ps -a)

3. Get the System

Each dependent repo will be cloned automatically, to get started clone this repo locally,

git clone https://github.com/nodezoo/nodezoo-system

4. Install your dependencies

In the ./nodezoo-system folder run,

npm install

5. Build the system

Copy the ./sample.env file to ./system.env and edit the environment variables as needed.

In the ./nodezoo-system folder run,

fuge build fuge/system.yml

6. Insert GitHub token

For the GitHub service to work you must create the file system.env in the fuge/env directory and copy the entire contents of sample.env to it. You then insert your GitHub personal access token into system.env.

7. Start the infrastructure

In the ./nodezoo-system folder, in a second terminal window run,

docker-compose -f fuge/infrastructure.yml up

8. Start the system

In the ./nodezoo-system folder run,

fuge shell fuge/system.yml

Note: You must run infrastructure using infrastructure.yml before running the system.

Note: The Nodezoo web app is available at 8000.

Development

To set up a development environment with cloned copies of all the repositories run :

make dev-setup

All the services will be checked out into ./services and will use npm link to place symlinks in the node_modules folder.

Contributing

The NodeZoo org encourages open and safe participation.

If you feel you can help in any way, be it with documentation, examples, extra testing, or new features please get in touch.

License

Copyright (c) 2016, Dean McDonnell and other contributors. Licensed under MIT.