Blame view

INSTALL.md 5.02 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.

42f35e84   hitier   Add documentation
56
    cp resources/lesia-btp.sqlite ./pdc-dev.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

42f35e84   hitier   Add documentation
71
72
73
74
    # Voire de l'anonymiser en changeant
    #   - les noms de projet
    #   - les noms de service
    #   - les noms de fonctions
b7958b97   hitier   More install doc
75
76
    #
    flask pdc_db fake_lesia_names
1d884e2e   hitier   Comments reformat
77

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


a414f355   hitier   Fix install doc
84
## Jouer les tests et exécuter un serveur local
cc95f31e   hitier   Complete installa...
85
86

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

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

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

cc95f31e   hitier   Complete installa...
96
97
    flask run

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

a414f355   hitier   Fix install doc
100
### Les fichiers concernés:
cc95f31e   hitier   Complete installa...
101
102

- pdc_web.wsgi
b7958b97   hitier   More install doc
103
- pdc_web.py
880e8a55   hitier   New config vars u...
104
- pdc_config.py
d8a6b942   hitier   More install doc
105
- db_config.py
cc95f31e   hitier   Complete installa...
106

a414f355   hitier   Fix install doc
107
### La procédure:
cc95f31e   hitier   Complete installa...
108

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


a414f355   hitier   Fix install doc
132
## Mise à jour 
cc95f31e   hitier   Complete installa...
133

a414f355   hitier   Fix install doc
134
### git autodeploy
3c0785d6   hitier   Auto deploy to ap...
135

cc95f31e   hitier   Complete installa...
136
137
138
139
140
141
142
143
144
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...
145
146
147
    # make bare repo
    git clone --bare /path/to/the/repo.git
    # put on hook
54262837   hitier   More intallation doc
148
149
150
151
    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...
152

3c0785d6   hitier   Auto deploy to ap...
153

3c0785d6   hitier   Auto deploy to ap...
154

a414f355   hitier   Fix install doc
155
## Intégration Pycharm 
bc7964c5   hitier   Documentation sph...
156

e4465a86   hitier   More french insta...
157
158
159
160
161
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...
162

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

e4465a86   hitier   More french insta...
165
166
167
168
169
Dans le menu 'Edit Configurations', changer les champs:

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

cc95f31e   hitier   Complete installa...
170

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

e4465a86   hitier   More french insta...
173
174
    FLASK_ENV=development
    FLASK_APP=pdc_web
cc95f31e   hitier   Complete installa...
175

bc7964c5   hitier   Documentation sph...
176

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