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