Dashing - dashboard framework: Difference between revisions
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Dashing | == 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 | |||
== Requirements == | |||
* Tested on Debian GNU/Linux 6.0 - Squeeze (dreamplug) | |||
* NodeJS | |||
* Ruby 1.9 | |||
* Git | |||
Line 40: | Line 49: | ||
done | done | ||
</source> | </source> | ||
=== Install NodeJS === | === Install NodeJS === | ||
; INSTALL from apt-get | |||
<source> | |||
apt-get install nodejs | |||
</source> | |||
* none of the source/compiling worked for me... | |||
<strike> | |||
<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 53: | 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 84: | 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 95: | 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 101: | Line 145: | ||
bundle | bundle | ||
</source> | </source> | ||
* Start the server! | * Start the server! | ||
Line 108: | 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
- '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>
- 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'], },
</source>
- Finish the compiling and install
<source>
- Configure seems not to find libssl by default so we give it an explicit pointer.
./configure --openssl-libpath=/usr/lib/ssl make
- prepare to wait FOREVER...
make test sudo make install node -v </source>
Install Dashing[edit]
- 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> 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>
- 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>
- !/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>