Installing Galaxy on Scientific Linux 6
Galaxy is a platform for managing, running, and sharing computational biology data and pipelines. Its a big idea, and a good idea, but a bit of a task to get working exactly how you might want it.
What follows is a brain dump of the initial setup and configuration of this tool. Sorry about the length.
Goals for sever configuration
- Follow all recommended settings for production level Galaxy server
- Use Nginx proxy front-end
- Enable as much of proxy components as possible
- Use local postgreSQL server
- Try to make these instructions as complete as possible
Future goals for follow up configuration include
- Enable and configure as many of the tools as possible
- Provide easy access to local directories of sequencing data inside Galaxy
- Experiment with with Galaxy Toolshed
- Experiment with cluster configurations
About the System
Scientific Linux release 6.1 (Carbon)
Will use separate galaxy user to run galaxy
Galaxy user’s home directory will be located:
/usr/local/galaxy
Resources
Most information comes from apapow.net
And the galaxy wikis Production Server page
Check base install
Ensure python is installed and at 2.6
which python
# /usr/bin/python
python --version
# Python 2.6.6Ensure PostgreSQL is installed
sudo yum install postgresql postgresql-serverModify PostgreSQL config file
Tricky part to getting postgreSQL working is the pg_hba.conf file. Edit it to allow local connections.
sudo vim /var/lib/pgsql/data/pg_hba.confA blog post explaining the syntax of this file . It should look something like:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all all 0.0.0.0/0 md5Startup PostgreSQL
sudo service postgresql initdb
sudo chkconfig postgresql on
sudo service postgresql startAdd galaxy user
Note
The galaxy user created here is not capable of using sudo. Every time sudo is used in this document, it is done from a sudo capable user.
Galaxy user’s home directory is at:
/usr/local/galaxy
This was done because /home is a remotely mounted disk.
sudo /usr/sbin/useradd galaxy --home /usr/local/galaxy
passwd galaxyInstall dependency packages
# install git just to have
sudo yum install git
# install mercurial to download galaxy
sudo yum install mercurialInstall Galaxy
Switch to galaxy user
su galaxy
cd ~Download galaxy
hg clone https://bitbucket.org/galaxy/galaxy-distDownload virtualenv
wget https://raw.github.com/pypa/virtualenv/master/virtualenv.pyCreate sand-boxed Python using virtualenv
python ./virtualenv.py --no-site-packages galaxy_env
. ./galaxy_env/bin/activate
which python
# ~/galaxy_env/bin/pythonConfigure galaxy user
Edit ~/.bashrc to define TEMP and to add virtualenv source
source ~/galaxy_env/bin/activate
TEMP=\$HOME/galaxy-dist/database/tmp
export TEMPEnsure that ~/.bash_profile sources ~/.bashrc
# this should be in ~/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fiSetup PostgreSQL database for Galaxy
Login as postgres user
sudo su - postgresUse createdb to create new database for galaxy
createdb galaxy_prodConnect to database using psql
psql galaxy_prodCreate galaxy user for PostgreSQL database
CREATE USER galaxy WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE galaxy_prod to galaxy;
\qTest galaxy PostgreSQL user.
Exit out of postgres user. Return to galaxy user and then attempt to connect to database.