Projet

Général

Profil

Www » Historique » Version 38

stephane.ligozat, 08/09/2018 14:03

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 30 stephane.ligozat
7
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 30 stephane.ligozat
Si libjpeg8 et libjpeg8-dev ne sont pas installés sur votre système :
17 28
18
    $ apt-get install libjpeg8 libjpeg8-dev
19
    $ apt-get build-dep python-imaging
20
21 36 stephane.ligozat
### Créer un environnement virtuel
22 28
23 36 stephane.ligozat
Installer PIP l'apt-get des programmes python
24
25 37 stephane.ligozat
    $ sudo apt-get pip
26 36 stephane.ligozat
27
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.
28
29
Installer virtualenv et virtualenvwrapper (détails : http://apprendre-python.com/page-virtualenv-python-environnement-virtuel).
30
31 37 stephane.ligozat
    $ pip install virtualenv virualenvwrapper
32 28
33
34 36 stephane.ligozat
Copier ces lignes à la fin de votre .bashrc :
35
36 37 stephane.ligozat
    export WORKON_HOME=~/.virenv
37
    mkdir -p $WORKON_HOME
38
    source /usr/local/bin/virtualenvwrapper.sh
39 28
40 36 stephane.ligozat
41 38 stephane.ligozat
### Installation de mezzanine et de ses dépendances
42 36 stephane.ligozat
   
43
    $ virtualenv webaki # créé l'environnement virtuel webaki
44 30 stephane.ligozat
    $ cd mezz_aquilenet
45 36 stephane.ligozat
    $ workon  webaki # démarrer l'environnement avec la commande workon installée par virtualenvwrapper.
46 37 stephane.ligozat
    (webaki)$ #  vous êtes bien dans l'environnement !
47
    (webaki)$ pip install mezzanine  # installe mezzanine et ses dépendances dans l'environnement webaki
48 30 stephane.ligozat
49 28
Installation des modules complémentaires qui sont listés dans requirements.txt à la racine du projet
50 30 stephane.ligozat
51 37 stephane.ligozat
    (webaki)$ pip install django-reversion django-piwik django-simple-captcha git+https://github.com/mjtorn/mezzanine-captcha.git
52 28
53 36 stephane.ligozat
### Installer la version de développement du site
54 28
55 36 stephane.ligozat
Dans le dossier de l'environnement webaki ou ailleurs, l'important est d'être connecté à l'environnement.
56 28
 
57
ajouter votre clé ssh publique sur gaia.aquilenet.fr:/home/www-git/.ssh/autorized.keys
58
59
ajouter ceci dans votre ~/.ssh/config :
60
61
    Host gitwww
62 30 stephane.ligozat
    HostName git.aquilenet.fr
63
    User www-git
64
    Port 55555
65 28
66 30 stephane.ligozat
vous pouvez maintenant cloner le projet :
67
68 37 stephane.ligozat
    (webaki)$ git clone ssh://gitwww:/srv/git/www-git/www_aquilenet.git
69
    (webaki)$ cd www_aquilenet
70
    (webaki)$ python manage.py runserver
71 36 stephane.ligozat
72
Vous pouvez ajouter cette ligne dansvotre .bashrc pour que le nom de la branche courante apparaisse dans votre prompt :
73
74 37 stephane.ligozat
    export PS1='\[\033[0;37m\]\u@\h:\[\033[0;33m\]\W\[\033[0m\]\[\033[1;32m\]$(__git_ps1)\[\033[0m\] \$ '
75 28
76 30 stephane.ligozat
Le site de développement est disponible à http://127.0.0.1:8000/
77 28
78 30 stephane.ligozat
Importez des données dans dev.db depuis le fichier aquilenet\_data\_dev.json avec cette commande :
79 28
80 37 stephane.ligozat
    (webaki)$ python manage.py loaddata aquilenet_data_dev.json
81 28
82 30 stephane.ligozat
## Déploiement vers le serveur
83 28
84 30 stephane.ligozat
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.
85 28
86 30 stephane.ligozat
### Se connecter sur le hestia.aquilenet.fr
87 28
88 30 stephane.ligozat
ajouter ceci dans votre ~/.ssh/config :
89
90
    Host hestia_web
91
    Hostname hestia.aquilenet.fr
92 28
    User webmaistre
93 30 stephane.ligozat
    Port 55555
94
95
se connecter : 
96 28
    
97 30 stephane.ligozat
    $ ssh hestia_web
98 28
99 30 stephane.ligozat
### Activer l'environnement virtuel du projet de test
100
101 28
    $ cd /srv/www/webmaistre/.virtualenvs/test_aquilenet
102 30 stephane.ligozat
    $ . bin/activate
103 28
104 30 stephane.ligozat
Dès lors (test_aquilenet) doit commencer votre ligne de commande.
105 28
106 30 stephane.ligozat
Aller dans le répertoire du projet :
107 28
108 30 stephane.ligozat
    (test_aquilenet) $ cd /srv/www/test_aquilenet
109 28
110 30 stephane.ligozat
### Récupérer la dernière version du dépôt
111 28
112 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.
113 28
114 30 stephane.ligozat
    (test_aquilenet) $ git pull
115 28
116 30 stephane.ligozat
### Mise à jour de la base
117
118
Si des 'models.py' de la nouvelle version ont été changés, ajoutés ou supprimés, il faut migrer ces modifications en faisant :
119
120
    (test_aquilenet) $  python manage.py migrate
121
122
### Les staticfiles
123
124 28
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 :
125 30 stephane.ligozat
126
    (test_aquilenet) $  python manage.py collectstatic
127
128 35 stephane.ligozat
### Redémarrer le processus
129 30 stephane.ligozat
130
    (test_aquilenet) $ sudo supervisorctl update gunicorn_test_aquilenet
131
132
Le PID est dans gunicorn.pid, en faisant :
133
134 35 stephane.ligozat
    $ ps -aux | grep test_aquilenet
135 30 stephane.ligozat
136
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.
137
138
139
### Passage en production
140
141
Si tout ce passe bien, alors on peut faire la même chose en passant à l'environnement de production :
142
143
    $ cd /srv/www/webmaistre/.virtualenvs/www_aquilenet
144
    $ . bin/activate
145
146
Dès lors (www_aquilenet) doit commencer votre ligne de commande.
147
148
Aller dans le répertoire du projet :
149
150
    (www_aquilenet) $ cd /srv/www/www_aquilenet
151
152
Puis procéder comme pour le projet de test.
153
154
155
## IDE
156
157
1\. vim : https://github.com/bling/dotvim  
158
2\. eclipse-pydev (dépôt ubuntu)  
159
3\. pycharm : https://www.jetbrains.com/pycharm/
160
161
## Présentation
162
163
Pré-requis :
164
165
1\. connaissance de django : https://docs.djangoproject.com/fr/1.10/  
166
2\. connaissance de mezzanine http://mezzanine.jupo.org/
167
168
**Des tutoriels vidéos sur http://aquilenet.fr/comment-je-change/ (il faut être connecté)**
169 28
170
## Edition du menu situé en haut à droite
171 33 louis.leveque
172
Les liens de ce menu sont éditables dans l'admin sous la page "menu annexe en haut à droite"
173
174
## Tricks 
175
176
Reformater l'image aux préférances de sacha.
177
Il faut ajourer ceci a la fin de la vue code source : 
178
179
~~~
180
<p>
181
<script>// <![CDATA[
182
document.getElementsByClassName('img-responsive')[0].style['width'] = '200px';
183
document.getElementsByClassName('img-responsive')[0].style['float'] = 'left';
184
document.getElementsByClassName('img-responsive')[0].style['margin-right'] = '5%';
185
// ]]></script>
186 28
</p>
187
~~~