Blame view

INSTALL.md 3.5 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
8
- sqlite ( pour le développement et les tests unitaires )
- chrome-driver et chromium ( pour les tests unitaires)
- postgresql ou mariadb (pour la production)
3c0785d6   hitier   Auto deploy to ap...
9

cc95f31e   hitier   Complete installa...
10
11
12
13
14
15
## Obtenir un répertoire fonctionnel

    git clone https://gitlab.irap.omp.eu/PDC-IRAP/pdc-web.git
    cd pdc-web

### Installer l'environment python
3c0785d6   hitier   Auto deploy to ap...
16
17
18

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

### Configurer l'application

d8a6b942   hitier   More install doc
24
25
26
    # D'abord les accés base de donnée
    cp resources/db_config.py .
    $(EDITOR) db_config.py 
3c0785d6   hitier   Auto deploy to ap...
27

d8a6b942   hitier   More install doc
28
    # Ensuite l'appli elle même (ce fichier est utilisable tel quel)
cc95f31e   hitier   Complete installa...
29
    cp resources/flaskenv .flaskenv
d8a6b942   hitier   More install doc
30
31
32
33
34
35
36
    $(EDITOR) .flaskenv

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

Utiliser l'outil de ligne de commande fourni avec l'application.

    flask pdc_db --help
1d884e2e   hitier   Comments reformat
37
38
39
40
41
42
43
44
45
46
47
48

    # créer la structure de la base
    flask pdc_db create_db

    # renseigner des agent depuis une base type lesia
    flask pdc_db feed_from_lesia

    # entrer des périodes
    flask pdc_db feed_periods

    # entrer des charges aléatoires (une centaine)
    flask pdc_db feed_random_charges
cc95f31e   hitier   Complete installa...
49
50
51
52
53
54
55
56
57
58
59
60
61


### Jouer les tests et exécuter un serveur local

    pip install -r requirements-tests.txt
	PYTHONPATH=. pytest

    # éventuellement voir le taux de couverture
    PYTHONPATH=. pytest  --cov=app --cov-report=xml:"coverage.xml" --cov-report=term --junitxml "tests-report.xml" 

    # ouvrir un serveur sur localhost:5000
    flask run

d8a6b942   hitier   More install doc
62
## Configurer l'appli web avec apache 
cc95f31e   hitier   Complete installa...
63
64
65
66

Les fichiers concernés:

- pdc_web.wsgi
d8a6b942   hitier   More install doc
67
- db_config.py
cc95f31e   hitier   Complete installa...
68
69
70

La procédure:

d8a6b942   hitier   More install doc
71
72
73
74
75
76
77
78
79
    # 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
80
    # le configurer : cf plus haut "Obtenir un répertoire fonctionnel"
d8a6b942   hitier   More install doc
81
82
83
84
    cd $WEB_DIR
    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
1d884e2e   hitier   Comments reformat
85
    $(EDITOR) db_config.py .flaskenv 
d8a6b942   hitier   More install doc
86
    
d8a6b942   hitier   More install doc
87
    # configurer le serveur web
cc95f31e   hitier   Complete installa...
88
    cp ./resources/apache2-virtual-host.conf /etc/apache2/sites-available/pdc-web.conf
1d884e2e   hitier   Comments reformat
89
    $(EDITOR) /etc/apache2/sites-available/pdc-web.conf 
cc95f31e   hitier   Complete installa...
90
91
92
93
94
95
    a2ensite pdc-web 
    apachectl restart


### Mise à jour 

bc7964c5   hitier   Documentation sph...
96
## git autodeploy
3c0785d6   hitier   Auto deploy to ap...
97

cc95f31e   hitier   Complete installa...
98
99
100
101
102
103
104
105
106
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...
107
108
109
    # make bare repo
    git clone --bare /path/to/the/repo.git
    # put on hook
54262837   hitier   More intallation doc
110
111
112
113
    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...
114

3c0785d6   hitier   Auto deploy to ap...
115

3c0785d6   hitier   Auto deploy to ap...
116

e4465a86   hitier   More french insta...
117
Intégration Pycharm 
cc95f31e   hitier   Complete installa...
118
-------------------
bc7964c5   hitier   Documentation sph...
119

e4465a86   hitier   More french insta...
120
121
122
123
124
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...
125

cc95f31e   hitier   Complete installa...
126
https://flask.palletsprojects.com/en/1.1.x/cli/#pycharm-integration
cc95f31e   hitier   Complete installa...
127
128
129
130

But basically, you just have to Edit the Run Configurations,
and set the fields:

e4465a86   hitier   More french insta...
131
132
133
134
135
Dans le menu 'Edit Configurations', changer les champs:

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

cc95f31e   hitier   Complete installa...
136

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

e4465a86   hitier   More french insta...
139
140
    FLASK_ENV=development
    FLASK_APP=pdc_web
cc95f31e   hitier   Complete installa...
141

bc7964c5   hitier   Documentation sph...
142

e4465a86   hitier   More french insta...
143
Ainsi fait, exécutez votre projet depuis pycharm et testez.
716b68ce   hitier   Add db migrate fa...
144
flask db update
582b4b3a   hitier   Add capacity comp...
145
db_config