Nov 04, 2014 Running Galaxy on Cloud Foundry
Galaxy is a an open, web-based platform for data intensive biomedical research.
Setting up app
First we need to clone repo
hg clone https://bitbucket.org/galaxy/galaxy-dist/ cd galaxy-dist hg update stable
Now that we have repo cloned we need to do a few things.
First create Procfile
web: sh run.sh
Next we need requirements.txt for some reason some of the eggs don't download properly so we use pip to install them
pyyaml bioblend paramiko simplejson
A manifest.yml is needed to cf-ssh
--- applications: - name: galaxy memory: 1G instances: 1 services: - galaxy-pg
Lets create app and some services to bind to it. I'm showing this on https://run.pivotal.io/ so your service may vary. We need a tool called cf-pancake here. It is used to get all the services attached to app and turn them into environment variables which is later used.
cf cs elephantsql turtle galaxy-pg cf push galaxy --no-start cf bs galaxy galaxy-pg cf-pancake set-env galaxy
Note: that a variable ELEPHANTSQL_URI was set. This is used later on.
Create the config file.
cp config/galaxy.ini.sample config/galaxy.ini
Look for the similar lines and change them to have the following.
port = PORT host = 0.0.0.0 ... database_connection = ELEPHANTSQL_URI
Note: we used variable earlier.
Add the following lines after #!/bin/sh
sed -i "s|ELEPHANTSQL_URI|$ELEPHANTSQL_URI|g" config/galaxy.ini sed -i "s/PORT/$PORT/g" config/galaxy.ini
Database migration take a while so in order to do this before starting app we use cf-ssh to start run to create database tables.
cf-ssh manifest.yml sh run.sh cf push galaxy
And that's it. You have Galaxy up and running and can play with it.
I got it up and running on Pivotal Web Services.