aboutsummaryrefslogtreecommitdiff
path: root/doc/README.org
blob: d9730948046015cc6b8e709081b660f09f12ee62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#+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]].