Projet

Général

Profil

Www » Historique » Version 39

pizzacoca, 08/09/2018 18:09

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