Projet

Général

Profil

Www » Historique » Version 41

pizzacoca, 08/09/2018 18:12

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