👓 David helps keep your Node.js project dependencies up to date.
Switch branches/tags
Clone or download
alanshaw Merge pull request #408 from forevermatt/patch-1
Explain the various badge colors
Latest commit a49e7d0 Jun 4, 2018



Build Status Dependency Status devDependency Status Donate to help support David development

Node.js based web service that tells you when your project npm dependencies are out of date. To use David, your project must include a package.json file in your repository.

Getting Started

With Node.js and Grunt installed already, do the following:

  • Install david-www:

    cd /path/to/david-www
    npm install
    npm run build
  • Create a .davidrc file (see Configuration section below)

  • Run david-www:

    npm start

Example usage

View a web page of all dependencies (and their updates, and their versions) for public GitHub repository "grunt-jsio" owned by "alanshaw":

curl http://localhost:1337/alanshaw/grunt-jsio

Get the current build status badge:

curl http://localhost:1337/alanshaw/grunt-jsio.png

Monorepo or package.json not in root?

You can use the path querystring parameter to specify the path to your package.json file. e.g.



Configuration is handled by rc (https://github.com/dominictarr/rc), see config.js for default configuration values.

For basic configuration, add a .davidrc file in the local directory (it is git ignored) and you can use JSON to override any of the default values.

Register a github personal oauth token and add it to the config:

  "github": {
    "token": "some_github_token"

You can also use environment variables e.g.

  • (Optional) If you want to use "sign in" feature you should:
    • Register a github developer application and add oauth client id and secret to .davidrc.
    • Developer application should have callback URL: http://localhost:1337/auth/callback

Docker Support

This example will run david-www interactively and will exit and destroy the container upon a control-c.

docker run -it --rm \
  -p 11337:1337 \
  -e david_github__token=github-token \
  -e david_site__hostname=http://localhost:11337 \
  -v /data/david:/opt/data \

This example will run it in detached mode.

docker run -d --name="david-www" \
  --restart=always \
  -p 11337:1337 \
  -e david_github__token=github-token \
  -e david_site__hostname=http://localhost:11337 \
  -v /data/david:/opt/data \


docker build -t david .