Projet

Général

Profil

Www » Historique » Version 44

pizzacoca, 08/09/2018 18:44

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