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