Dashing - dashboard framework: Difference between revisions

From RARForge
Jump to navigation Jump to search
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Dashing ==  
== Dashing - A Dashboard for TVs/Displays ==  
http://shopify.github.io/dashing/


URL: http://shopify.github.io/dashing/
It's a pretty slick dashboard... wish it was perl... but who creates fluff in perl
== Requirements ==
* Tested on Debian GNU/Linux 6.0 - Squeeze (dreamplug)
* NodeJS
* Ruby 1.9
* Git




Line 22: Line 31:


==== Ruby additional steps ====
==== 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'''
<source>
<source>
ln -s /var/lib/gems/1.9.1/bin/dashing /usr/bin/
for f in /var/lib/gems/1.9.1/bin/*
do
filename=$(basename $f);
if [ -e $filename ]
then echo "$filename already exits";
else sudo ln -s $f $filename;
fi
done
</source>
</source>
=== Install NodeJS ===
; INSTALL from apt-get
<source>
<source>
gem install bundler
apt-get install nodejs
ln -s /var/lib/gems/1.9.1/bin/dashing /usr/bin/
</source>
</source>




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


<strike>


=== Install NodeJS ===
<source>
<source>
sudo apt-get update && apt-get install git-core curl build-essential openssl libssl-dev
sudo apt-get update && apt-get install git-core curl build-essential openssl libssl-dev
Line 45: Line 77:
git checkout v0.9.5
git checkout v0.9.5
</source>
</source>


; This is a step normally not documented, but required for the arm7 (dreamplug)
; This is a step normally not documented, but required for the arm7 (dreamplug)
Line 76: Line 107:
</source>
</source>


=== Install ===
</strike>
* Install the gem from the command line. Make sure you have Ruby 1.9
 
=== Install Dashing ===
 
; you must of followed the previous steps above.
 
* This was mainly pulled from http://shopify.github.io/dashing/  -- so look there for updates. (2013-05-31)
 
* Install the gem from the command line. Make sure you have Ruby 1.9 (yep.. we do)
<source>
<source>
gem install dashing
gem install dashing
</source>
</source>
* '''remeber the script before''' -- we need to link the new installed gem '''dashing''' into /usr/bin/
<source>
for f in /var/lib/gems/1.9.1/bin/*
do
filename=$(basename $f);
if [ -e $filename ]
then echo "$filename already exits";
else sudo ln -s $f $filename;
fi
done
</source>


* Generate a new project
* Generate a new project
Line 87: Line 138:
dashing new sweet_dashboard_project
dashing new sweet_dashboard_project
</source>
</source>


* Change your directory to sweet_dashboard_project and bundle gems
* Change your directory to sweet_dashboard_project and bundle gems
Line 93: Line 145:
bundle
bundle
</source>
</source>


* Start the server!
* Start the server!
Line 100: Line 153:
</source>
</source>


* Point your browser at localhost:3030 and have fun!
 
 
 
==== Upgrade JSON Gem ====
 
* edit <your_new_dashboard>/GemFile
<source>
# append
gem 'json', '~> 1.7.7'
</source>
<source>
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.
</source>
 
 
* '''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:
<source>
dashing start -p 5000 -e production
</source>
 
 
* Run in the background
<source>
dashing start -d
</source>
 
 
==== Scripts to run dashing as a Service ====
 
* https://gist.github.com/gregology/5313326
 
<source>
#!/bin/bash
# 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
 
### BEGIN INIT INFO
# 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.
### END INIT INFO
 
# 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
 
DASHING_DIR=/path/to/dashboard/
GEM_HOME=/usr/local/lib/ruby/gems/1.9.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 
case "$1" in
start)
echo "Starting Dashing."
cd $DASHING_DIR; dashing start -d
;;
stop)
echo "Stopping Dashing."
killall thin
;;
logs)
echo "See the logs of the Dashing."
tail -f $DASHING_DIR'log/thin.log'
;;
status)
# Check to see if the process is running
ps aux|grep -i dashing
;;
*)
echo “Dashing”
echo $”Usage: $0 {start|stop|status|logs}”
exit 1
esac
exit 0
</source>


[[Category:How-to]]
[[Category:How-to]]

Latest revision as of 16:31, 31 May 2013

Dashing - A Dashboard for TVs/Displays[edit]

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

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

Requirements[edit]

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


Install Ruby 1.9.1 on Debian Squeeze[edit]

<source> sudo apt-get install ruby1.9.1-full </source> <source> 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 </source>


Ruby additional steps[edit]

  • 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

<source> for f in /var/lib/gems/1.9.1/bin/* do filename=$(basename $f); if [ -e $filename ] then echo "$filename already exits"; else sudo ln -s $f $filename; fi done </source>



Install NodeJS[edit]

INSTALL from apt-get

<source> apt-get install nodejs </source>


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

<source> sudo apt-get update && apt-get install git-core curl build-essential openssl libssl-dev </source>

<source> git clone https://github.com/joyent/node.git cd node

  1. 'git tag' shows all available versions: select the latest stable.

git checkout v0.9.5 </source>

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

<source>

  1. You need to edit this file and modify
  2. line # 84 it should look like this:

'gcc': {

   'all': {
     'CCFLAGS':      ['$DIALECTFLAGS', '$WARNINGFLAGS', '-march=armv7-a'],
     'CXXFLAGS':     ['-fno-rtti', '-fno-exceptions'],
   },

</source>


  • Finish the compiling and install

<source>

  1. Configure seems not to find libssl by default so we give it an explicit pointer.

./configure --openssl-libpath=/usr/lib/ssl make

  1. prepare to wait FOREVER...

make test sudo make install node -v </source>

Install Dashing[edit]

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)

<source> gem install dashing </source>

  • remeber the script before -- we need to link the new installed gem dashing into /usr/bin/

<source> for f in /var/lib/gems/1.9.1/bin/* do filename=$(basename $f); if [ -e $filename ] then echo "$filename already exits"; else sudo ln -s $f $filename; fi done </source>


  • Generate a new project

<source> dashing new sweet_dashboard_project </source>


  • Change your directory to sweet_dashboard_project and bundle gems

<source> bundle </source>


  • Start the server!

<source> dashing start </source>



Upgrade JSON Gem[edit]

  • edit <your_new_dashboard>/GemFile

<source>

  1. append

gem 'json', '~> 1.7.7' </source> <source> 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.

</source>


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


Dashing Options[edit]

Server Port[edit]

  • Dashing runs on Thin behind the scenes. That means that any config for running thin works. Example:

<source> dashing start -p 5000 -e production </source>


  • Run in the background

<source> dashing start -d </source>


Scripts to run dashing as a Service[edit]

<source>

  1. !/bin/bash
  2. Dashing service
  3. Add this file to /etc/init.d/
  4. $ sudo cp dashboard /etc/init.d/
  5. Update variables DASHING_DIR, GEM_HOME, & PATH to suit your installation
  6. $ sudo nano /etc/init.d/dashboard
  7. Make executable
  8. $ sudo chmod 755 /etc/init.d/dashboard
  9. Update rc.d
  10. $ sudo update-rc.d dashboard defaults
  11. Dashboard will start at boot. Check out the boot log for trouble shooting "/var/log/boot.log"
  12. USAGE: start|stop|status|logs
      1. BEGIN INIT INFO
  1. Provides: dashboard
  2. Required-Start: $remote_fs $syslog
  3. Required-Stop: $remote_fs $syslog
  4. Default-Start: 2 3 4 5
  5. Default-Stop: 0 1 6
  6. Short-Description: Start daemon at boot time
  7. Description: Enable service provided by daemon.
      1. END INIT INFO
  1. Gregology <greg@gho.st>
  2. https://gist.github.com/gregology/5313326
  3. Based on Faraz Haider's LifeRay Startup Service script
  4. https://gist.github.com/haiderfaraz/2773431

DASHING_DIR=/path/to/dashboard/ GEM_HOME=/usr/local/lib/ruby/gems/1.9.1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

case "$1" in start) echo "Starting Dashing." cd $DASHING_DIR; dashing start -d

stop) echo "Stopping Dashing." killall thin

logs) echo "See the logs of the Dashing." tail -f $DASHING_DIR'log/thin.log'

status)

  1. Check to see if the process is running

ps aux|grep -i dashing

  • )

echo “Dashing” echo $”Usage: $0 {start|stop|status|logs}” exit 1 esac exit 0 </source>