Blame view

INSTALL.md 3.56 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
    # D'abord les accés base de donnée
880e8a55   hitier   New config vars u...
25
26
    cp resources/pdc_config.py .
    $(EDITOR) pdc_config.py 
d8a6b942   hitier   More install doc
27
28
    cp resources/db_config.py .
    $(EDITOR) db_config.py 
3c0785d6   hitier   Auto deploy to ap...
29

d8a6b942   hitier   More install doc
30
    # Ensuite l'appli elle même (ce fichier est utilisable tel quel)
cc95f31e   hitier   Complete installa...
31
    cp resources/flaskenv .flaskenv
d8a6b942   hitier   More install doc
32
33
34
35
36
37
38
    $(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
39
40
41
42
43
44
45
46
47
48
49
50

    # 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...
51
52
53
54
55
56
57
58
59
60
61
62
63


### 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
64
## Configurer l'appli web avec apache 
cc95f31e   hitier   Complete installa...
65
66
67
68

Les fichiers concernés:

- pdc_web.wsgi
880e8a55   hitier   New config vars u...
69
- pdc_config.py
d8a6b942   hitier   More install doc
70
- db_config.py
cc95f31e   hitier   Complete installa...
71
72
73

La procédure:

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


### Mise à jour 

bc7964c5   hitier   Documentation sph...
99
## git autodeploy
3c0785d6   hitier   Auto deploy to ap...
100

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

3c0785d6   hitier   Auto deploy to ap...
118

3c0785d6   hitier   Auto deploy to ap...
119

e4465a86   hitier   More french insta...
120
Intégration Pycharm 
cc95f31e   hitier   Complete installa...
121
-------------------
bc7964c5   hitier   Documentation sph...
122

e4465a86   hitier   More french insta...
123
124
125
126
127
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...
128

cc95f31e   hitier   Complete installa...
129
https://flask.palletsprojects.com/en/1.1.x/cli/#pycharm-integration
cc95f31e   hitier   Complete installa...
130
131
132
133

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

e4465a86   hitier   More french insta...
134
135
136
137
138
Dans le menu 'Edit Configurations', changer les champs:

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

cc95f31e   hitier   Complete installa...
139

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

e4465a86   hitier   More french insta...
142
143
    FLASK_ENV=development
    FLASK_APP=pdc_web
cc95f31e   hitier   Complete installa...
144

bc7964c5   hitier   Documentation sph...
145

e4465a86   hitier   More french insta...
146
Ainsi fait, exécutez votre projet depuis pycharm et testez.