Installation

Vagrant Install

A Vagrant install is an easy way to get everything running in a local virtual machine. This includes an install of MongoDB, Girder, Romanesco, Apache, and the TangeloHub application. To get started, install Vagrant, VirtualBox, and Ansible. It’s then a matter of cloning this repository and running vagrant up:

git clone https://github.com/Kitware/tangelothub.git
cd tangelohub
vagrant up

When that completes (it will take some time - get a coffee), visit http://localhost:9080/ to visit the interface.

To see the Girder interface, visit http://localhost:9080/girder.

To create new analyses and save data, login to TangeloHub or Girder with username girder and password girder.

To log in to your virtual machine, run:

vagrant ssh

From that environment, you can restart Romanesco:

sudo stop romanesco
sudo start romanesco

To view the Romanesco log for analysis debugging:

sudo cat /var/log/upstart/romanesco.log

To restart Girder:

sudo stop girder
sudo start girder

To enter a local MongoDB shell:

mongo

The default Vagrant install will also install several R libraries needed for Arbor analyses, which takes a significant amount of time. To turn off this step, edit devops/ansible/playbook.yml and set the arbor variable to false.

Apache Installation

The TangeloHub application requires several components, as well as the main TangeloHub source.

Check out the TangeloHub repository. As a team developer:

git clone git@github.com:Kitware/tangelohub.git

Or as a contributor:

git clone https://github.com/Kitware/tangelohub.git

Next, install Girder. Follow the link for install instructions. After following the Girder install, you will also have a MongoDB instance running on your machine. The simplest Girder install consists of a pip install. Ensure you have an updated pip then install Girder:

sudo pip install -U pip
sudo pip install girder

Install R. R is needed in order to install and use Romanesco.

We need the Romanesco Girder plugin and web interface. To install them, use the girder-install command:

sudo girder-install -f web
git clone https://github.com/Kitware/romanesco.git
sudo girder-install -f plugin -s ./romanesco

Install an appropriate Girder config file:

sudo cp tangelohub/devops/ansible/girder.local.cfg path/to/site-packages/girder/conf/

You can find your path/to/site-packages with:

python
>>> import site
>>> site.getsitepackages()

Start Girder:

python -m girder &

Start a Romanesco worker with:

cd romanesco
sudo pip install -r requirements.txt
python -m romanesco &

TangeloHub requires npm and Grunt, which should already have been installed as part of the Girder installation:

curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install nodejs
sudo npm install -g grunt

Enter the source folder and build out all the npm dependencies:

cd tangelohub
npm install

If you modify the TangeloHub source, you can rebuild the app:

grunt init
grunt

If you are using Apache, use something like the following file in the sites-available folder (you can simply replace the default file there):

Listen 9080

<VirtualHost *:9080>
    DocumentRoot /path/to/tangelohub/app
    ProxyPass /girder http://localhost:9000
    ProxyPassReverse /girder http://localhost:9000
</VirtualHost>

You will need the proxy and proxy_html Apache modules:

sudo a2enmod proxy
sudo a2enmod proxy_http

After restarting Apache (sudo apache2ctl restart), visit your Girder web interface at http://localhost:9080/girder to enable the Romanesco plugin from the admin console. A restart of Girder is required to fully enable the Romanesco plugin.

Now you should be able to visit the running TangeloHub instance at http://localhost:9080.

Note

If you hit any npm errors in the install process, execute the following and retry the steps:

sudo rm -rf ~/tmp
sudo rm -rf ~/.npm

Note

If you hit any pip errors in the installation of Girder, execute the following and retry:

sudo pip install -U pip