Dashing - dashboard framework

Revision as of 09:31, 31 May 2013 by Robertr (talk | contribs) (→‎Dashing Options)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Dashing - A Dashboard for TVs/Displays

URL: http://shopify.github.io/dashing/

It's a pretty slick dashboard... wish it was perl... but who creates fluff in perl


  • Tested on Debian GNU/Linux 6.0 - Squeeze (dreamplug)
  • NodeJS
  • Ruby 1.9
  • Git

Install Ruby 1.9.1 on Debian Squeeze

sudo apt-get install ruby1.9.1-full
cd /usr/bin
ln -sf ruby1.9.1 ruby
ln -sf gem1.9.1 gem
ln -sf erb1.9.1 erb
ln -sf irb1.9.1 irb
ln -sf rake1.9.1 rake
ln -sf rdoc1.9.1 rdoc
ln -sf testrb1.9.1 testrb

Ruby additional steps

  • Install bundler gem ( I didn't have it, safe to run if you aleady have it)

<source< gem install bundler </source>

  • Link all the binaries. We shouldn't have to do this since we used apt-get to install.. but whatever.
This will allow you to run ruby, bundle, dashing, etc.. anytime you install a NEW gem, you might want to run this
for f in /var/lib/gems/1.9.1/bin/*
filename=$(basename $f);
if [ -e $filename ]
then echo "$filename already exits";
else sudo ln -s $f $filename;

Install NodeJS

INSTALL from apt-get
apt-get install nodejs

  • none of the source/compiling worked for me...

sudo apt-get update && apt-get install git-core curl build-essential openssl libssl-dev
git clone https://github.com/joyent/node.git
cd node
# 'git tag' shows all available versions: select the latest stable.
git checkout v0.9.5
This is a step normally not documented, but required for the arm7 (dreamplug)
  • modify file: node-vx.x/deps/v8/SConstruct
  • You need to add -march=armv7-a
# You need to edit this file and modify
# line # 84 it should look like this:
'gcc': {
    'all': {
      'CCFLAGS':      ['$DIALECTFLAGS', '$WARNINGFLAGS', '-march=armv7-a'],
      'CXXFLAGS':     ['-fno-rtti', '-fno-exceptions'],

  • Finish the compiling and install
# Configure seems not to find libssl by default so we give it an explicit pointer.
./configure --openssl-libpath=/usr/lib/ssl
# prepare to wait FOREVER...
make test
sudo make install
node -v

Install Dashing

you must of followed the previous steps above.
  • Install the gem from the command line. Make sure you have Ruby 1.9 (yep.. we do)
gem install dashing
  • remeber the script before -- we need to link the new installed gem dashing into /usr/bin/
for f in /var/lib/gems/1.9.1/bin/*
filename=$(basename $f);
if [ -e $filename ]
then echo "$filename already exits";
else sudo ln -s $f $filename;

  • Generate a new project
dashing new sweet_dashboard_project

  • Change your directory to sweet_dashboard_project and bundle gems

  • Start the server!
dashing start

Upgrade JSON Gem

  • edit <your_new_dashboard>/GemFile
# append
gem 'json', '~> 1.7.7'
bundle install
 Fetching gem metadata from https://rubygems.org/...........
 Fetching gem metadata from https://rubygems.org/..
 Resolving dependencies....
 Using backports (3.3.1) 
 Using coffee-script-source (1.6.2) 
 Using multi_json (1.7.4) 
 Using execjs (1.4.0) 
 Using coffee-script (2.2.0) 
 Using daemons (1.1.9) 
 Using rack (1.5.2) 
 Using tzinfo (0.3.37) 
 Using rufus-scheduler (2.0.19) 
 Using sass (3.2.9) 
 Using rack-protection (1.5.0) 
 Using tilt (1.4.1) 
 Using sinatra (1.4.2) 
 Using eventmachine (1.0.3) 
 Using rack-test (0.6.2) 
 Using sinatra-contrib (1.4.0) 
 Using hike (1.2.2) 
 Using sprockets (2.10.0) 
 Using thin (1.5.1) 
 Using thor (0.18.1) 
 Using dashing (1.0.5) 
 Installing json (1.7.7) 
 Using bundler (1.3.5) 
 Your bundle is complete!
 Use `bundle show [gemname]` to see where a bundled gem is installed.

  • Point your browser at localhost:3030 and have fun!'

Dashing Options

Server Port

  • Dashing runs on Thin behind the scenes. That means that any config for running thin works. Example:
dashing start -p 5000 -e production

  • Run in the background
dashing start -d

Scripts to run dashing as a Service

# Dashing service
# Add this file to /etc/init.d/
# $ sudo cp dashboard /etc/init.d/
# Update variables DASHING_DIR, GEM_HOME, & PATH to suit your installation
# $ sudo nano /etc/init.d/dashboard
# Make executable
# $ sudo chmod 755 /etc/init.d/dashboard
# Update rc.d
# $ sudo update-rc.d dashboard defaults
# Dashboard will start at boot. Check out the boot log for trouble shooting "/var/log/boot.log"
# USAGE: start|stop|status|logs
# Provides:          dashboard
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
# Gregology <greg@gho.st>
# https://gist.github.com/gregology/5313326
# Based on  Faraz Haider's LifeRay Startup Service script
# https://gist.github.com/haiderfaraz/2773431
case "$1" in
echo "Starting Dashing."
cd $DASHING_DIR; dashing start -d
echo "Stopping Dashing."
killall thin
echo "See the logs of the Dashing."
tail -f $DASHING_DIR'log/thin.log'
# Check to see if the process is running
ps aux|grep -i dashing
echo “Dashing”
echo $”Usage: $0 {start|stop|status|logs}exit 1
exit 0