Projet

Général

Profil

Www » Historique » Version 47

pizzacoca, 11/09/2018 21:18

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