#+TITLE: Installing GeneNetwork services with GNU Guix * Table of Contents :TOC: - [[#introduction][Introduction]] - [[#binary-deployment-wip][Binary deployment (WIP)]] - [[#install-genenetwork-server][Install genenetwork server]] - [[#run-mysql-server][Run MySQL server]] - [[#start-the-gn2-server][Start the GN2 server]] - [[#source-deployment-and-other-information-on-reproducibility][Source deployment and other information on reproducibility]] * Introduction Large system deployments tend to get very complex. In this document we explain the GeneNetwork deployment system which is based on GNU Guix (see Pjotr's [[https://github.com/pjotrp/guix-notes/blob/master/README.md][Guix-notes]]). * Binary deployment (WIP) GN can be deployed either as a binary tarball or as a GNU Guix package. First install GNU Guix following the instructions of the [[https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html#Binary-Installation][binary installation]] using a tar ball from [[https://www.gnu.org/software/guix/download/][here]] and, update guix with a 'guix pull' and make guix visible in the path. More information exists also in my [[https://github.com/pjotrp/guix-notes/blob/master/INSTALL.org][guix-notes]]. With guix running you should be able to install python, for example. : guix package -i python2 This will make python appear in $HOME/.guix-profile/bin/python. Suggested environment settings can be seen with : guix package --search-paths ** Install genenetwork server Fetch the nar file and install it after adding the key with, for example : cat signing-key.pub |.guix-profile/bin/guix archive --authorize : guix archive --import < guix_gn2-2.0-9e9475053.nar ** Run MySQL server At this point we require the underlying distribution to install and run mysqld. Download one of http://files.genenetwork.org/raw_database/ https://s3.amazonaws.com/genenetwork2/db_webqtl_s.zip Check the md5sum. After installation inflate the database binary in the MySQL directory (this is subject to change soon) : chown -R mysql:mysql db_webqtl_s/ : chmod 700 db_webqtl_s/ : chmod 660 db_webqtl_s/* restart MySQL service (mysqld). Login as root and : mysql> show databases; : +--------------------+ : | Database | : +--------------------+ : | information_schema | : | db_webqtl_s | : | mysql | : | performance_schema | : +--------------------+ Set permissions and match password in your settings file below: : mysql> grant all privileges on db_webqtl_s.* to gn2@"localhost" identified by 'mysql_password'; ** Start the GN2 server Copy the default_settings.py file and modify : DB_URI = """mysql://gn2:mysql_password@localhost/db_webqtl""" : SQLALCHEMY_DATABASE_URI = 'mysql://gn2:mysql_password/db_webqtl' : SECRET_KEY = 'secret_key' Start the server with your settings file : ./bin/genenetwork2 ~/my_gn2_settings.py * Source deployment and other information on reproducibility See the document [[GUIX-Reproducible-from-source.org]].