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.