Projet

Général

Profil

Www » Historique » Version 50

pizzacoca, 14/08/2019 19:52

1 30 stephane.ligozat
# Documentation site aquilenet
2 28
3
Le site est propulsé par django mezzanine (python)
4
5
Site hébergé sur la vm dédiée hestia.aquilenet.fr
6 50 pizzacoca
(le git, lui est sur gaia)
7 30 stephane.ligozat
8 32 stephane.ligozat
Aller sur http://aquilenet.fr et https://aquilenet.fr/jechange pour l'admin
9 28
10 30 stephane.ligozat
## Installation en local pour développement
11 28
12
Détail de l'installation : http://mezzanine.jupo.org/docs/overview.html#installation
13
14 30 stephane.ligozat
Requis : python \>= 2.7 pip et virtualenv
15 28
16 36 stephane.ligozat
### Créer un environnement virtuel
17 28
18 36 stephane.ligozat
Installer PIP l'apt-get des programmes python
19 28
20 50 pizzacoca
```
21 28
    $ sudo apt-get install python-pip
22 50 pizzacoca
```
23 36 stephane.ligozat
24
Un environnement virtuel isole les librairies qui y sont installées du système ainsi les projets partageant les mêmes librairies tournent dans le même environnement.
25
26 41 pizzacoca
Installer virtualenv et virtualenvwrapper (pour plus de détails : http://apprendre-python.com/page-virtualenv-python-environnement-virtuel).
27 28
28 50 pizzacoca
```
29 28
    $ sudo apt install virtualenv virtualenvwrapper
30 50 pizzacoca
```
31 36 stephane.ligozat
32 28
33
Copier ces lignes à la fin de votre .bashrc :
34
35 50 pizzacoca
```
36
export WORKON_HOME=~/.virenv # Parametrage du répertoire par défaut des environnements virtuels
37
mkdir -p $WORKON_HOME
38
    export PS1='\[\033[0;37m\]\u@\h:\[\033[0;33m\]\W\[\033[0m\]\[\033[1;32m\]$(__git_ps1)\[\033[0m\] \$ ' # Pour que le nom de la branche courant dans votre prompt
39
```
40 28
41 36 stephane.ligozat
### Installation de mezzanine et de ses dépendances
42 38 stephane.ligozat
43 50 pizzacoca
```
44 45 pizzacoca
    $ cd ~/.virenv # on se place dans le répertoire des environnements virtuels
45 30 stephane.ligozat
    $ virtualenv webaki # créé l'environnement virtuel webaki
46 28
    $ workon  webaki # démarrer l'environnement avec la commande workon installée par virtualenvwrapper.
47 37 stephane.ligozat
    (webaki)$ #  vous êtes bien dans l'environnement !
48 30 stephane.ligozat
    (webaki)$ pip install mezzanine  # installe mezzanine et ses dépendances dans l'environnement webaki
49 50 pizzacoca
```
50 28
51 37 stephane.ligozat
Installation des modules complémentaires qui sont listés dans requirements.txt à la racine du projet
52 28
53 50 pizzacoca
```
54 28
    (webaki)$ pip install django-reversion django-piwik django-simple-captcha git+https://github.com/mjtorn/mezzanine-captcha.git
55 50 pizzacoca
```
56 28
57 50 pizzacoca
58 28
### Installer la version de développement du site
59
60
Dans le dossier de l'environnement webaki ou ailleurs, l'important est d'être connecté à l'environnement.
61
 
62 50 pizzacoca
Il faut avoir un acces à gaia et appartenir au groupe www-data
63
Une fois votre compte créé et votre clef ssh opérationelle,
64 28
ajouter ceci dans votre ~/.ssh/config :
65
66 50 pizzacoca
```
67 28
    Host gitwww
68 30 stephane.ligozat
    HostName git.aquilenet.fr
69 50 pizzacoca
    User votre-compte-sur-gaia
70 30 stephane.ligozat
    Port 55555
71 50 pizzacoca
```
72 46 pizzacoca
73 28
74 46 pizzacoca
vous pouvez maintenant cloner le projet :
75
76 50 pizzacoca
```
77 46 pizzacoca
    (webaki)$ git clone ssh://gitwww:/srv/git/www-git/www_aquilenet.git
78 50 pizzacoca
```
79 28
80
Création de la base dev.db du site de développement (fichier sqlite qui est à la racinedu projet git. 
81
82 50 pizzacoca
```
83 28
    (webaki)$ cd www_aquilenet #accès dans le répertoire du projet
84 48 pizzacoca
    (webaki)$ python manage.py migrate #migration (création des tables)
85 50 pizzacoca
```
86 46 pizzacoca
87 28
pour lancer le site de développement 
88
89 50 pizzacoca
```
90 28
    (webaki)$ python manage.py runserver #pour démarrer le site
91 50 pizzacoca
```
92 48 pizzacoca
93 46 pizzacoca
Le site de développement est disponible à http://127.0.0.1:8000/
94 28
95 30 stephane.ligozat
Importez des données dans dev.db depuis le fichier aquilenet\_data\_dev.json avec cette commande :
96 28
97 50 pizzacoca
```
98 28
    (webaki)$ python manage.py loaddata aquilenet_data_dev.json
99 50 pizzacoca
```
100 28
101
## Déploiement vers le serveur
102 30 stephane.ligozat
103 28
Le projet de production est www_aquilenet, le projet de développement est test_aquilenet. Il est conseillé de déployer sur le test (dev.aquilenet.fr) avant de déployer en production.
104 30 stephane.ligozat
105 28
### Se connecter sur le hestia.aquilenet.fr
106
107 30 stephane.ligozat
ajouter ceci dans votre ~/.ssh/config :
108 28
109 50 pizzacoca
```
110 30 stephane.ligozat
    Host hestia_web
111 28
    Hostname hestia.aquilenet.fr
112 30 stephane.ligozat
    User webmaistre
113
    Port 55555
114 50 pizzacoca
```
115 28
116
se connecter : 
117 30 stephane.ligozat
    
118 50 pizzacoca
```
119 30 stephane.ligozat
    $ ssh hestia_web
120 50 pizzacoca
```
121 28
122 30 stephane.ligozat
### Activer l'environnement virtuel du projet de test
123 28
124 50 pizzacoca
```
125 30 stephane.ligozat
    $ cd /srv/www/webmaistre/.virtualenvs/test_aquilenet
126 28
    $ . bin/activate
127 50 pizzacoca
```
128 28
129 30 stephane.ligozat
Dès lors (test_aquilenet) doit commencer votre ligne de commande.
130 28
131 30 stephane.ligozat
Aller dans le répertoire du projet :
132 28
133 50 pizzacoca
```
134 28
    (test_aquilenet) $ cd /srv/www/test_aquilenet
135 50 pizzacoca
```
136 28
137 30 stephane.ligozat
### Récupérer la dernière version du dépôt
138 28
139 30 stephane.ligozat
**NOTE :** le développeur a créé une nouvelle branche pour développer une évolution, il la "pousse" sur le dépôt, il prévient ses copains qui testent la branche, si tout est OK, il fusionne sa branche dans la branche master et pousse cette dernière vers le dépôt.
140 28
141 50 pizzacoca
```
142 28
    (test_aquilenet) $ git pull
143 50 pizzacoca
```
144 28
145 30 stephane.ligozat
### Mise à jour de la base
146 28
147 30 stephane.ligozat
Si des 'models.py' de la nouvelle version ont été changés, ajoutés ou supprimés, il faut migrer ces modifications en faisant :
148 28
149 50 pizzacoca
```
150 28
    (test_aquilenet) $  python manage.py migrate
151 50 pizzacoca
```
152 30 stephane.ligozat
153
### Les staticfiles
154 28
155 30 stephane.ligozat
Si des css, js ou des images d'interface (logo d'accueil) ont été changés, ajoutés ou supprimés, il faut lancer la commande :
156 28
157 50 pizzacoca
```
158 30 stephane.ligozat
    (test_aquilenet) $  python manage.py collectstatic
159 50 pizzacoca
```
160 28
161 30 stephane.ligozat
### Redémarrer le processus
162 28
163 50 pizzacoca
```
164 30 stephane.ligozat
    (test_aquilenet) $ sudo supervisorctl update gunicorn_test_aquilenet
165 50 pizzacoca
```
166 30 stephane.ligozat
167
Le PID est dans gunicorn.pid, en faisant :
168
169 50 pizzacoca
```
170 30 stephane.ligozat
    $ ps -aux | grep test_aquilenet
171 50 pizzacoca
```
172 35 stephane.ligozat
173 30 stephane.ligozat
on doit voir que le processus master a ce PID. Il ne peut y avoir qu'un seul master pour test_aquilenet. Si l'application n'a pas redémarrée (pas de changements visibles), tuer ce processus ($ kill -HUP <PID>) et redémarrer.
174 28
175 30 stephane.ligozat
176
### Passage en production
177
178
Si tout ce passe bien, alors on peut faire la même chose en passant à l'environnement de production :
179
180 50 pizzacoca
```
181 30 stephane.ligozat
    $ cd /srv/www/webmaistre/.virtualenvs/www_aquilenet
182 28
    $ . bin/activate
183 50 pizzacoca
```
184 30 stephane.ligozat
185
Dès lors (www_aquilenet) doit commencer votre ligne de commande.
186
187
Aller dans le répertoire du projet :
188
189 50 pizzacoca
```
190 30 stephane.ligozat
    (www_aquilenet) $ cd /srv/www/www_aquilenet
191 50 pizzacoca
```
192 30 stephane.ligozat
193
Puis procéder comme pour le projet de test.
194
195
196
## IDE
197
198
1\. vim : https://github.com/bling/dotvim  
199
2\. eclipse-pydev (dépôt ubuntu)  
200
3\. pycharm : https://www.jetbrains.com/pycharm/
201
202
## Présentation
203
204
Pré-requis :
205
206
1\. connaissance de django : https://docs.djangoproject.com/fr/1.10/  
207
2\. connaissance de mezzanine http://mezzanine.jupo.org/
208
209
**Des tutoriels vidéos sur http://aquilenet.fr/comment-je-change/ (il faut être connecté)**
210 28
211
## Edition du menu situé en haut à droite
212 33 louis.leveque
213
Les liens de ce menu sont éditables dans l'admin sous la page "menu annexe en haut à droite"
214
215
## Tricks 
216
217 49 sacha
Reformater l'image aux préférences de sacha.
218 33 louis.leveque
Il faut ajourer ceci a la fin de la vue code source : 
219
220
~~~
221
<p>
222
<script>// <![CDATA[
223
document.getElementsByClassName('img-responsive')[0].style['width'] = '200px';
224
document.getElementsByClassName('img-responsive')[0].style['float'] = 'left';
225
document.getElementsByClassName('img-responsive')[0].style['margin-right'] = '5%';
226
// ]]></script>
227 28
</p>
228
~~~