/
INSTALL
130 lines (79 loc) · 3.06 KB
/
INSTALL
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
Pour faire tourner le serveur en local
======================================
Installer les logiciels suivants
--------------------------------
* Ruby - 2.1.1 de préférence
* Postgresql - version 9.1 ou supérieure
* Les paquets de développement de Postgresql (postgresql-server-dev-9.1 sur Ubuntu)
Préparer la base de donnée
--------------------------
Commandes à effectuer pour créer un utilisateur, une base de données puis
attribuer un mot de passe à ce nouvel utilisateur.
user $ sudo su postgres
postgresql $ createuser prediction
postgresql $ createdb -E utf8 -O prediction -W prediction
postgresql $ psql
sql #=> ALTER ROLE prediction WITH PASSWORD 'password';
Cette manipulation peut aussi se faire depuis une interface graphique comme pgadmin.
Configurer la base dans l'application
-------------------------------------
Dans le fichier de `config/database.yml` :
config:
user: prediction
pass: password
name: prediction
host: localhost
port: 5433
Installer les dépendances
-------------------------
Bundler se charge d'installer les dépendances du projet pour vous... Encore faut-il avoir Bundler.
gem install bundler
Une fois que Bundler est disponible il faudra lancer depuis le répertoire racine du projet :
bundle install
Mettre en place le schema de la base
------------------------------------
Créer les tables nécessaire au fonctionnement de l'application se fait grace à la commande :
bundle exec rake db:migrate
Penser à faire de même avec la base de test.
RACK_ENV=test bundle exec rake db:migrate
Tester
------
Uniquement via des scénarios :
COVERAGE=true bundle exec cucumber
Lancer l'application
--------------------
Avec puma :
bundle exec puma -e app --config config/puma.dev.rb
Avec puma et rerun pour faciliter le dev :
RACK_ENV=app be rerun --pattern '**/*.{rb,js,coffee,css,scss,sass,erb,html,haml,slim,ru}' "puma --config config/puma.dev.rb"
Pour faire tourner le serveur en production
===========================================
Serveur web
-----------
Nginx est utilisé, des fichiers sont mis à disposition dans scripts/nginx.
Serveur d'application
---------------------
Puma est utilisé, des fichiers sont mis à disposition dans scripts/puma.
Taches asynchrones
------------------
Installer redis.
Monitoring
----------
Via monit, les fichiers de conf de monit sont dans `scripts/monit` (TODO).
Deux scripts sont également nécessaires :
scripts/{start,stop}-sidekiq.sh
Utiisateurs
-----------
Créer un utilisateur 'prediction' dédié au déploiement :
sudo useradd prediction
Donner les droits à cet utilisateur sur /var/www/api :
sudo chown prediction /var/www/api
sudo chmod ug+s /var/www/api
Configuer les backup dropbox
----------------------------
Utiliser en exemple le fichier config/dropbox.yml.example. Remplir le fichier
à l'aide des éléments obtenus via `BackupDropbox.get_token`.
Déploiement de l'application
----------------------------
À l'aide de mina :
bundle exec mina deploy