aboutsummaryrefslogtreecommitdiff
path: root/doc/README.org
blob: 85c6da1c1324b99eb2367803d3e75215c0cf0b19 (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#+TITLE: Installing GeneNetwork services

* Table of Contents                                                     :TOC:
 - [[#introduction][Introduction]]
 - [[#source-deployment][Source deployment]]
   - [[#install-guix][Install guix]]
   - [[#checkout-the-git-repositories][Checkout the git repositories]]
   - [[#update-guix][Update guix]]
   - [[#install-gn2][Install GN2]]
   - [[#run-gn2][Run GN2]]
   - [[#run-mysql-server][Run MySQL server]]
   - [[#run-your-own-copy-of-gn2][Run your own copy of GN2]]
 - [[#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 also Pjotr's [[https://github.com/pjotrp/guix-notes/blob/master/README.md][Guix-notes]]). The Guix system can be used to install
GN with all its files and dependencies.

The official installation path is via a GNU Guix installation from a
checked out version of the Guix package tree (this is required for
reproducibility).

* Source deployment

** Install guix

Deploying from source is also straightforward. Install GNU Guix using
a binary tar ball as described [[https://github.com/pjotrp/guix-notes][here]].

If it works you should be able to install a package with

: guix package -i hello

** Checkout the git repositories

Check out the two relevant guix and guix-bioinformatics git
repositories:

#+begin_src bash
cd ~
mkdir genenetwork
cd genenetwork
git clone https://github.com/genenetwork/guix-bioinformatics
git clone --recursive --branch gn-latest https://github.com/genenetwork/guix guix-gn-latest
cd guix-gn-latest
#+end_src bash

** Update guix

At some point you may decide to create, install and run a recent
version of the guix-daemon by compiling the guix repository. Follow
[[https://github.com/pjotrp/guix-notes/blob/master/INSTALL.org#building-gnu-guix-from-source-using-guix][these]] steps carefully.

** Install GN2

#+begin_src bash
export GUIX_PACKAGE_PATH=~/genenetwork/guix-bioinformatics/
cd ~/genenetwork/guix-gn-latest
./pre-inst-env guix package -i genenetwork2
#+end_src bash

** Run GN2

#+begin_src bash
export PATH=~/.guix-profile/bin:$PATH
genenetwork2
#+end_src bash

will start the default server which listens on port 5003, i.e.,
http://localhost:5003/.

** 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';

** Run your own copy of GN2

At some point you may want to fix the source code. Clone the GN2
repository from  https://github.com/genenetwork/genenetwork2_diet

Inside the repository:

: cd genenetwork2_diet
: ./bin/genenetwork2 

Will fire up your local repo http://localhost:5003/ using the  
settings in ./etc/default_settings.py

To override settings create your own from a copy of
default_settings.py and pass it into GN2 with

: ./bin/genenetwork2 $HOME/my_settings.py

and everything *should* work. This way we develop against
the exact same dependency graph of software.


* Source deployment and other information on reproducibility

See the document [[GUIX-Reproducible-from-source.org]].