Projet

Général

Profil

Www » Historique » Version 49

sacha, 21/11/2018 16:32

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