Projet

Général

Profil

Www » Historique » Version 36

stephane.ligozat, 08/09/2018 13:59

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