tiffank1802 commited on
Commit
f2d53ec
·
1 Parent(s): 2bf2b45

Add French deployment verification guide

Browse files

- Complete step-by-step guide for verifying HF Spaces deployment
- Endpoint testing procedures with expected responses
- Common problems and troubleshooting solutions
- Advanced debugging techniques
- Local Docker testing instructions

Files changed (1) hide show
  1. VERIFIER_DEPLOIEMENT.md +309 -0
VERIFIER_DEPLOIEMENT.md ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Guide de Vérification du Déploiement - ENISE Site
2
+
3
+ ## 🎯 Vue d'ensemble
4
+
5
+ Le code de l'ENISE Site est maintenant **prêt pour la production** sur Hugging Face Spaces.
6
+
7
+ **Status**: ✅ Tous les tests locaux passent
8
+
9
+ ## ✅ Étapes de Vérification
10
+
11
+ ### Étape 1: Vérifier le Status du Space
12
+
13
+ 1. Allez sur: https://huggingface.co/spaces/ktongue/ENISE
14
+ 2. Vérifiez le statut en haut à droite
15
+ 3. **Acceptable**: ✅ "Running"
16
+ 4. **À attendre**: ⏳ "Building" (relancer après quelques minutes)
17
+ 5. **Problème**: ❌ "Error" (vérifier les logs)
18
+
19
+ ### Étape 2: Vérifier les Logs
20
+
21
+ Si le status est "Building" ou "Error":
22
+
23
+ 1. Cliquez sur **⚙️ Settings** (engrenage en haut à droite)
24
+ 2. Cliquez sur l'onglet **Logs**
25
+ 3. Vous devriez voir ceci (scroll si besoin):
26
+
27
+ ```
28
+ # Logs attendus (ordre chronologique):
29
+
30
+ 1. "Starting build..."
31
+ 2. "Building Docker image..."
32
+ 3. "docker run ... ./run.sh"
33
+ 4. "[INFO] Collecting static files..."
34
+ 5. "[INFO] Running database migrations..."
35
+ 6. "[INFO] Starting server on 0.0.0.0:7860..."
36
+ ```
37
+
38
+ **Si vous voyez une erreur**, notez le message exact.
39
+
40
+ ### Étape 3: Tester les Endpoints
41
+
42
+ Une fois le status "Running", testez ces URLs:
43
+
44
+ #### 3.1 Homepage (Test Principal)
45
+ ```
46
+ https://ktongue-enise.hf.space/
47
+ ```
48
+
49
+ **Expected**:
50
+ - ✅ Page web s'affiche
51
+ - ✅ Titre: "ENISE" visible
52
+ - ✅ Formations listées
53
+ - ✅ Pas d'erreur 500
54
+
55
+ **Si erreur**:
56
+ - Vérifier que les static files chargent (CSS, images)
57
+ - Consulter les logs
58
+
59
+ #### 3.2 Page Formations
60
+ ```
61
+ https://ktongue-enise.hf.space/formations/
62
+ ```
63
+
64
+ **Expected**:
65
+ - ✅ Liste des formations s'affiche
66
+ - ✅ Status 200
67
+
68
+ #### 3.3 Test Appwrite (Important!)
69
+ ```
70
+ https://ktongue-enise.hf.space/api/appwrite/test/
71
+ ```
72
+
73
+ **Expected**: Réponse JSON comme:
74
+ ```json
75
+ {
76
+ "status": "ok",
77
+ "message": "Appwrite connection successful",
78
+ "project_id": "697abaca00272dab718b",
79
+ "database_id": "697cd79900149b10540c"
80
+ }
81
+ ```
82
+
83
+ **ou** si API Key manquante:
84
+ ```json
85
+ {
86
+ "status": "error",
87
+ "message": "Authentication failed",
88
+ "error": "Invalid API key"
89
+ }
90
+ ```
91
+
92
+ > Si vous voyez une erreur d'authentification Appwrite, cela signifie que `APPWRITE_API_KEY` n'est pas bien configurée dans HF Secrets.
93
+
94
+ #### 3.4 Admin Panel
95
+ ```
96
+ https://ktongue-enise.hf.space/admin/
97
+ ```
98
+
99
+ **Expected**:
100
+ - ✅ Page de login Django
101
+ - ✅ Vous pouvez vous identifier
102
+ - ✅ Pas d'erreur 500
103
+
104
+ ### Étape 4: Vérifier les Fichiers Statiques
105
+
106
+ Dans la page d'accueil, ouvrez les DevTools (F12) et:
107
+
108
+ 1. Allez à l'onglet **Network**
109
+ 2. Rechargez la page (F5)
110
+ 3. Regardez les fichiers chargés
111
+
112
+ **À vérifier**:
113
+ - ✅ `style.css` → Status **200** (pas 404)
114
+ - ✅ Images → Status **200** (pas 404)
115
+ - ✅ Pas d'erreur en console rouge
116
+
117
+ Si vous voyez des erreurs 404 sur les fichiers statiques:
118
+ - Les fichiers ne sont pas servis correctement
119
+ - Vérifier que WhiteNoise est activé (il l'est ✅)
120
+
121
+ ### Étape 5: Vérifier les Variables d'Environnement
122
+
123
+ Si quelque chose ne fonctionne pas, vérifiez les secrets HF:
124
+
125
+ 1. Allez sur https://huggingface.co/spaces/ktongue/ENISE
126
+ 2. Cliquez **⚙️ Settings**
127
+ 3. Cliquez **Repository secrets**
128
+ 4. Vérifiez que ces variables existent:
129
+
130
+ ```
131
+ ✓ DEBUG (value: False)
132
+ ✓ SECRET_KEY (value: caché)
133
+ ✓ ALLOWED_HOSTS (value: *)
134
+ ✓ CSRF_TRUSTED_ORIGINS (value: https://ktongue-enise.hf.space,...)
135
+ ✓ APPWRITE_ENDPOINT (value: https://fra.cloud.appwrite.io/v1)
136
+ ✓ APPWRITE_PROJECT_ID (value: 697abaca00272dab718b)
137
+ ✓ APPWRITE_API_KEY (value: caché) ⚠️ IMPORTANT
138
+ ✓ APPWRITE_DATABASE_ID (value: 697cd79900149b10540c)
139
+ ```
140
+
141
+ **Si une variable manque**:
142
+ 1. Cliquez "Add secret"
143
+ 2. Remplissez la variable
144
+ 3. Cliquez "Save"
145
+ 4. Le space redémarrera automatiquement
146
+
147
+ ## 🚨 Problèmes Courants et Solutions
148
+
149
+ ### Problème 1: Status "Building" depuis longtemps
150
+
151
+ **Cause**: La construction du Docker est en cours
152
+
153
+ **Solution**:
154
+ 1. Attendez 5-10 minutes
155
+ 2. Vérifiez les logs
156
+ 3. Si l'erreur persiste, regardez les logs pour plus de détails
157
+
158
+ ### Problème 2: HTTP 400 ou 403
159
+
160
+ **Causes possibles**:
161
+ 1. `SECRET_KEY` non configurée
162
+ 2. `ALLOWED_HOSTS` incorrect
163
+ 3. `CSRF_TRUSTED_ORIGINS` manquant
164
+
165
+ **Solution**:
166
+ 1. Vérifiez les secrets dans HF Spaces
167
+ 2. Assurez-vous que `ALLOWED_HOSTS=*`
168
+ 3. Redémarrez le space (Settings → Restart)
169
+
170
+ ### Problème 3: Static files ne chargent pas (styles cassés)
171
+
172
+ **Cause**: WhiteNoise ne sert pas les fichiers correctement
173
+
174
+ **Solution**:
175
+ 1. Vérifiez dans les logs l'erreur
176
+ 2. Assurez-vous que `run.sh` exécute `collectstatic`
177
+ 3. Vérifiez que le Dockerfile utilise `./run.sh`
178
+
179
+ **Status**: ✅ WhiteNoise est configuré - ce problème ne devrait pas survenir
180
+
181
+ ### Problème 4: Erreur "Authentication failed" sur /api/appwrite/test/
182
+
183
+ **Cause**: `APPWRITE_API_KEY` est invalide ou manquante
184
+
185
+ **Solution**:
186
+ 1. Allez sur https://console.appwrite.io
187
+ 2. Générez une nouvelle clé API
188
+ 3. Mettez à jour `APPWRITE_API_KEY` dans HF Secrets
189
+ 4. Redémarrez le space
190
+
191
+ ### Problème 5: Page blanche ou erreur 500
192
+
193
+ **Causes possibles**:
194
+ 1. Erreur dans Django
195
+ 2. Base de données inaccessible
196
+ 3. Configuration manquante
197
+
198
+ **Solution**:
199
+ 1. Vérifiez les logs HF Spaces
200
+ 2. Cherchez "ERROR" ou "EXCEPTION" dans les logs
201
+ 3. Notez le message d'erreur exact
202
+ 4. Vérifiez la configuration dans `enise_site/settings.py`
203
+
204
+ ## ✨ Tests de Fonctionnalité
205
+
206
+ ### Test 1: Homepage Charge Correctement
207
+
208
+ ```bash
209
+ # Commande (à exécuter localement si vous avez accès):
210
+ curl -I https://ktongue-enise.hf.space/
211
+
212
+ # Expected:
213
+ # HTTP/1.1 200 OK
214
+ # Content-Type: text/html; charset=utf-8
215
+ ```
216
+
217
+ ### Test 2: API Fonctionne
218
+
219
+ ```bash
220
+ curl -s https://ktongue-enise.hf.space/api/appwrite/test/ | python -m json.tool
221
+
222
+ # Expected: JSON response avec status "ok" ou "error"
223
+ ```
224
+
225
+ ### Test 3: Admin Accessible
226
+
227
+ ```bash
228
+ curl -I https://ktongue-enise.hf.space/admin/
229
+
230
+ # Expected:
231
+ # HTTP/1.1 302 Found (redirection vers login)
232
+ # ou
233
+ # HTTP/1.1 200 OK (si déjà connecté)
234
+ ```
235
+
236
+ ## 📊 Résumé de Vérification
237
+
238
+ **Checklist pour confirmer le succès**:
239
+
240
+ - [ ] Space status = "Running"
241
+ - [ ] Pas d'erreurs dans les logs
242
+ - [ ] GET / → Page visible (200 OK)
243
+ - [ ] GET /formations/ → Fonctionne (200 OK)
244
+ - [ ] GET /api/appwrite/test/ → JSON response
245
+ - [ ] CSS et images chargent (DevTools Network)
246
+ - [ ] GET /admin/ → Page login ou 302 redirect
247
+ - [ ] Pas d'erreurs 400/500
248
+
249
+ **Si tous les éléments sont cochés**: ✅ **DÉPLOIEMENT RÉUSSI!**
250
+
251
+ ## 🔧 Dépannage Avancé
252
+
253
+ Si vous avez toujours des problèmes:
254
+
255
+ ### 1. Vérifier la Docker Image Localement
256
+
257
+ ```bash
258
+ # Cloner le repo
259
+ git clone https://github.com/tiffank1802/enise-site-2.git
260
+ cd enise-site-2
261
+
262
+ # Construire l'image
263
+ docker build -t enise-test .
264
+
265
+ # Exécuter avec variables d'env
266
+ docker run -p 7860:7860 \
267
+ -e DEBUG=False \
268
+ -e SECRET_KEY=test-key \
269
+ -e ALLOWED_HOSTS=* \
270
+ -e APPWRITE_ENDPOINT=https://fra.cloud.appwrite.io/v1 \
271
+ -e APPWRITE_PROJECT_ID=your-id \
272
+ -e APPWRITE_API_KEY=your-key \
273
+ -e APPWRITE_DATABASE_ID=your-db-id \
274
+ enise-test
275
+
276
+ # Visiter http://localhost:7860
277
+ ```
278
+
279
+ ### 2. Vérifier les Logs en Direct
280
+
281
+ Sur HF Spaces → Settings → Logs:
282
+ - Cherchez "ERROR"
283
+ - Cherchez "EXCEPTION"
284
+ - Cherchez "FAILED"
285
+
286
+ Copiez le message d'erreur complet pour diagnostic.
287
+
288
+ ### 3. Redémarrer le Space
289
+
290
+ 1. Allez sur le Space
291
+ 2. Settings → Environment
292
+ 3. Cliquez "Restart"
293
+
294
+ Cela redémarrera le container et rechargera les variables d'environnement.
295
+
296
+ ## 📚 Ressources
297
+
298
+ - **GitHub Repo**: https://github.com/tiffank1802/enise-site-2
299
+ - **HF Space**: https://huggingface.co/spaces/ktongue/ENISE
300
+ - **Documentation**:
301
+ - `QUICK_START.md` - Configuration rapide
302
+ - `DEPLOYMENT_CHECKLIST.md` - Checklist complète
303
+ - `FIXES_APPLIED.md` - Détails techniques
304
+
305
+ ---
306
+
307
+ **Dernière mise à jour**: Jan 30, 2025
308
+ **Status**: ✅ Code production-ready
309
+ **Prochaine étape**: Tester le space et confirmer le fonctionnement