Skip to content
A simple Node.js status board showing github commits and more
CoffeeScript JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Mint Source

A simple Node.js status board showing:

  • Recent Github commits
  • Jenkins CI build status
  • Current song playing through


  • node.js 0.4
  • npm
    • To install run: curl | sh
  • Redis (local install for development)
  • Heroku account (for production deploy)


  1. Install dependencies npm install
  2. Copy to
  3. Add relevant details to the
  4. Start redis redis-server
  5. Run the app node index.js
  6. Visit localhost:1337 in a browser.

Deploy to Heroku

  1. Create a new app on Heroku: heroku create appname --stack cedar
  2. Deploy to heroku git push heroku master
  3. Scale the web process on Heroku heroku ps:scale web=1
  4. Add Redis to go to your app heroku addons:add redistogo
  5. Add your app settings:
    • heroku config:add NODE_ENV=production
    • heroku config:add AUTH_ENABLED=true => enable/disable basic HTTP auth
    • heroku config:add AUTH_USER=username => optional basic auth username
    • heroku config:add AUTH_PASS=password => optional basic auth password
    • heroku config:add JENKINS_ENABLED=true => enable build monitoring with Jenkins?
    • heroku config:add JENKINS_IP= => set if you'd like to IP filter the Jenkins receive action
    • heroku config:add LASTFM_ENABLED=true => optional - show current song
    • heroku config:add LASTFM_KEY=apikey => your api key
    • heroku config:add LASTFM_USER=username => the account you'd like to track

Set up Github Post Receive Hooks

  1. Visit{username}/{project}/admin/hooks and choose post receive URLs from the list.
  2. Enter http://{appname} into the URL field and save. NB. If you have enabled HTTP auth on your Mint Source site the post receive hook URL should be in the format: http://{user}:{password}@{appname}

Set up Jenkins Post Build Hooks

If you run the Jenkins CI server, mint source can also display build status.

  1. Install the Jenkins Notification plugin.
  2. Visit http://{your-ci-box}/job/project-name/configure and click 'Add Endpoint' in the Job Notifications section. Enter http://{appname} and hit save.

Wait, I have NDA projects which I can't display on my status board!

We totally have your back, substitute sensitive names by adding them to Redis (there will be a page to administer this eventually):

LPUSH Discretions "{\"orig\":\"secret-name\",\"subs\":\"public-name\"}"

Send your own data

Mint Source accepts data from any source. Display a notification every time your awesome app gets a new user! Just configure your app to make a POST request to http://{appname} with the following JSON in the body:

  "message": "Message body",         // <String>: Required - the main text to be displayed.
  "submessage": "submessage",        // <String>: Required - small lower message
  "timestamp": "2012-01-01T00:00:00",// <String>: Optional - will use the time the post was recieved if not specified. Expects a UTC string.
  "image": "/path/to/image.png",     // <String>: Optional - image to show on the board.
  "colour": "#bada55"                // <String>: Optional - specify a colour to make the message stand out.

Testing locally

You can manually add mock Github post receive hook data to Redis.


LPUSH Commits "{\"message\":\"update pricing a tad\",\"project\":\"github\",\"timestamp\":\"2008-02-15T14:36:34-08:00\",\"author\":\"Chris Wanstrath\"}"

LPUSH Commits "{\"message\":\"woo\! it works\",\"project\":\"github\",\"timestamp\":\"2011-02-15T14:36:34-08:00\",\"author\":\"Chris Wanstrath\"}"
Something went wrong with that request. Please try again.