Blame view

INSTALL.md 4.92 KB
cc95f31e   hitier   Complete installa...
1
# Installation de Plan De Charge
bc7964c5   hitier   Documentation sph...
2

cc95f31e   hitier   Complete installa...
3
## Prérequis
3c0785d6   hitier   Auto deploy to ap...
4

cc95f31e   hitier   Complete installa...
5
- python3
d8a6b942   hitier   More install doc
6
7
- sqlite ( pour le développement et les tests unitaires )
- chrome-driver et chromium ( pour les tests unitaires)
b4ff40eb   hitier   More comments in ...
8
- postgresql ou mysql/mariadb ( pour la production )
3c0785d6   hitier   Auto deploy to ap...
9

cc95f31e   hitier   Complete installa...
10
11
## Obtenir un répertoire fonctionnel

b4ff40eb   hitier   More comments in ...
12
    export GIT_SSL_NO_VERIFY=1
cc95f31e   hitier   Complete installa...
13
14
    git clone https://gitlab.irap.omp.eu/PDC-IRAP/pdc-web.git
    cd pdc-web
b4ff40eb   hitier   More comments in ...
15
    git checkout dev # éventuellement travailler avec la branche la plus à jour
cc95f31e   hitier   Complete installa...
16
17

### Installer l'environment python
3c0785d6   hitier   Auto deploy to ap...
18
19
20

    python3 -m venv venv
    source venv/bin/activate
d8a6b942   hitier   More install doc
21
    pip install --upgrade pip
3c0785d6   hitier   Auto deploy to ap...
22
    pip install -r requirements.txt
cc95f31e   hitier   Complete installa...
23
24
25

### Configurer l'application

b7958b97   hitier   More install doc
26
27
28
29
30
Les fichiers de configuration fournis dans le répertoire ./resources sont à copier à la racine du projet,
mais peuvent être laissés tels quels pour un premier test aprés installation.

Il est bon d'y jeter un oeil, les commentaires sont là pour aider.

a414f355   hitier   Fix install doc
31
    # D'abord les accès base de donnée
b7958b97   hitier   More install doc
32
    #
d8a6b942   hitier   More install doc
33
34
    cp resources/db_config.py .
    $(EDITOR) db_config.py 
3c0785d6   hitier   Auto deploy to ap...
35

b7958b97   hitier   More install doc
36
37
38
39
40
41
42
43
44
45
    # Puis le fichier pour l'application elle même
    #
    cp resources/pdc_config.py .
    $(EDITOR) pdc_config.py 

    # Enfin le contrôle de la commande flask
    # également chargé par l'application grace à l'instruction:
    # app/__init__.py: load_dotenv(env_file, verbose=True)
    #
    cp resources/flaskenv .flaskenv # ! noter le '.' devant le fichier destination
d8a6b942   hitier   More install doc
46
47
48
49
    $(EDITOR) .flaskenv

### Créer la base de données 

b7958b97   hitier   More install doc
50
Dans un premier temps pour tester l'installation, on peut s'appuyer sur une base déjà disponible.
d8a6b942   hitier   More install doc
51

b7958b97   hitier   More install doc
52
53
54
55
Il s'agit de l'import d'une base de type Lesia dont les noms d'agents, de projets, de métiers et de services ont été
réécrit avec des chantiers du batiment. Cela afin de ne pas diffuser des données réelles du Lesia et permettre la
diffusion de ces données de test avec le projet plan-de-charge.

25ec6dd7   hitier   Fix install
56
    cp resources/lesia-btp.sqlite ./pdc-test.db
b7958b97   hitier   More install doc
57
58

Vérifier que ce chemin correspond avec celui configuré dans le fichier `db_config.py`
1d884e2e   hitier   Comments reformat
59

b7958b97   hitier   More install doc
60
61
62
63
Pour un usage plus avancé, il y a l'outil de ligne de commande fourni avec l'application.

    # Créer la structure de la base
    #
1d884e2e   hitier   Comments reformat
64
65
    flask pdc_db create_db

b7958b97   hitier   More install doc
66
67
68
    # Il est aussi possible d'importer une base de type Lesia
    # cela suppose de disposer d'une telle base, et de l'avoir configurée dans db_config.py
    #
a414f355   hitier   Fix install doc
69
    flask pdc_db feed_from_lesia 
1d884e2e   hitier   Comments reformat
70

b7958b97   hitier   More install doc
71
72
73
    # Voire de l'anonymiser:
    #
    flask pdc_db fake_lesia_names
1d884e2e   hitier   Comments reformat
74

b7958b97   hitier   More install doc
75
76
77
78
    # Plus d'info sur les outils en ligne de commande:
    #
    flask --help
    flask pdc_db --help
cc95f31e   hitier   Complete installa...
79
80


a414f355   hitier   Fix install doc
81
## Jouer les tests et exécuter un serveur local
cc95f31e   hitier   Complete installa...
82
83

    pip install -r requirements-tests.txt
b7958b97   hitier   More install doc
84
    cp resources/lesia-btp.sqlite ./pdc-test.db # ou le chemin configuré dans `db_config.py`
cc95f31e   hitier   Complete installa...
85
86
87
	PYTHONPATH=. pytest

    # éventuellement voir le taux de couverture
b7958b97   hitier   More install doc
88
    #
cc95f31e   hitier   Complete installa...
89
90
    PYTHONPATH=. pytest  --cov=app --cov-report=xml:"coverage.xml" --cov-report=term --junitxml "tests-report.xml" 

b7958b97   hitier   More install doc
91
92
Enfin, ouvrir un serveur sur localhost:5000 et y accéder avec son navigateur.

cc95f31e   hitier   Complete installa...
93
94
    flask run

d8a6b942   hitier   More install doc
95
## Configurer l'appli web avec apache 
cc95f31e   hitier   Complete installa...
96

a414f355   hitier   Fix install doc
97
### Les fichiers concernés:
cc95f31e   hitier   Complete installa...
98
99

- pdc_web.wsgi
b7958b97   hitier   More install doc
100
- pdc_web.py
880e8a55   hitier   New config vars u...
101
- pdc_config.py
d8a6b942   hitier   More install doc
102
- db_config.py
cc95f31e   hitier   Complete installa...
103

a414f355   hitier   Fix install doc
104
### La procédure:
cc95f31e   hitier   Complete installa...
105

d8a6b942   hitier   More install doc
106
107
108
109
110
111
112
113
114
    # créer le répertoire pour le web
    export WEB_DIR=/var/www/html/pdc-web
    mkdir $WEB_DIR

    # le peupler avec le code 
    export GIT_DIR=/path/to/pdc_web/.git
    export GIT_BRANCH=master
    git --work-tree=$WEB_DIR --git-dir=$GIT_DIR checkout -f $GIT_BRANCH

1d884e2e   hitier   Comments reformat
115
    # le configurer : cf plus haut "Obtenir un répertoire fonctionnel"
d8a6b942   hitier   More install doc
116
117
118
119
    cd $WEB_DIR
    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
880e8a55   hitier   New config vars u...
120
    $(EDITOR) pdc_config.py db_config.py .flaskenv 
d8a6b942   hitier   More install doc
121
    
d8a6b942   hitier   More install doc
122
    # configurer le serveur web
cc95f31e   hitier   Complete installa...
123
    cp ./resources/apache2-virtual-host.conf /etc/apache2/sites-available/pdc-web.conf
1d884e2e   hitier   Comments reformat
124
    $(EDITOR) /etc/apache2/sites-available/pdc-web.conf 
cc95f31e   hitier   Complete installa...
125
126
127
128
    a2ensite pdc-web 
    apachectl restart


a414f355   hitier   Fix install doc
129
## Mise à jour 
cc95f31e   hitier   Complete installa...
130

a414f355   hitier   Fix install doc
131
### git autodeploy
3c0785d6   hitier   Auto deploy to ap...
132

cc95f31e   hitier   Complete installa...
133
134
135
136
137
138
139
140
141
Les fichiers concernés:

- scripts/post-deploy.sh
- resources/post-receive.git-hook

La procédure:

    git --work-tree=/var/www/html/pdc-web --git-dir=/path/to/the/repo.git checkout -f master

3c0785d6   hitier   Auto deploy to ap...
142
143
144
    # make bare repo
    git clone --bare /path/to/the/repo.git
    # put on hook
54262837   hitier   More intallation doc
145
146
147
148
    cp /path/to/working-directory/resources/post-receive.git-hook repo.git/hooks/post-receive
    $(EDITOR) repo.git/hooks/post-receive

    git push to repo
3c0785d6   hitier   Auto deploy to ap...
149

3c0785d6   hitier   Auto deploy to ap...
150

3c0785d6   hitier   Auto deploy to ap...
151

a414f355   hitier   Fix install doc
152
## Intégration Pycharm 
bc7964c5   hitier   Documentation sph...
153

e4465a86   hitier   More french insta...
154
155
156
157
158
Ce projet utilisant le pattern "factory", il faut procéder
à quelques configuration afin de le faire tourner avec
pycharm.

Pour une procédure détaillée, voir la page:
cc95f31e   hitier   Complete installa...
159

cc95f31e   hitier   Complete installa...
160
https://flask.palletsprojects.com/en/1.1.x/cli/#pycharm-integration
cc95f31e   hitier   Complete installa...
161

e4465a86   hitier   More french insta...
162
163
164
165
166
Dans le menu 'Edit Configurations', changer les champs:

- 'module name' positionné à 'flask'
- et dans le champs 'Parameters' choisir 'run'

cc95f31e   hitier   Complete installa...
167

e4465a86   hitier   More french insta...
168
Normalement, cette configuration permet de lire les variables positionées dans le fichier .flaskenv
cc95f31e   hitier   Complete installa...
169

e4465a86   hitier   More french insta...
170
171
    FLASK_ENV=development
    FLASK_APP=pdc_web
cc95f31e   hitier   Complete installa...
172

bc7964c5   hitier   Documentation sph...
173

b7958b97   hitier   More install doc
174
Ainsi fait, exécutez votre projet depuis pycharm et essayez sur un navigateur à l'adresse localhost:5000.