# ENISE Site - Production Deployment Guide ## 📋 Sommaire Ce repository contient l'application ENISE Site - une plateforme web Django pour l'Ă©cole d'ingĂ©nieurs ENISE, dĂ©ployĂ©e sur Hugging Face Spaces avec intĂ©gration Appwrite. - **Repository**: https://github.com/tiffank1802/enise-site-2 - **HF Space**: https://huggingface.co/spaces/ktongue/ENISE - **Framework**: Django 5.0 - **Backend**: Appwrite Cloud - **Deployment**: Docker sur HF Spaces ## ✹ CaractĂ©ristiques ### ✅ ImplĂ©mentĂ©es - Homepage avec branding ENISE - Listing des formations/spĂ©cialisations - IntĂ©gration Appwrite pour les donnĂ©es - SystĂšme de gestion des fichiers - Authentification utilisateur - Stockage MongoDB (optionnel) - Fichiers statiques avec WhiteNoise - Configuration production-ready - Documentation complĂšte ### đŸ—„ïž Collections Appwrite Disponibles - `specialites` - Programs/Specialties - `actualites` - News/Updates - `contact` - Contact form submissions - `partenaires` - Academic partners - `statistiques` - School statistics ## 🚀 DĂ©ploiement Rapide ### 1ïžâƒŁ Configuration sur HF Spaces 1. Visitez: https://huggingface.co/spaces/ktongue/ENISE 2. Cliquez **⚙ Settings** 3. Allez Ă  **Repository Secrets** 4. Ajoutez ces variables (voir `QUICK_START.md` pour valeurs): ``` DEBUG=False SECRET_KEY= ALLOWED_HOSTS=* CSRF_TRUSTED_ORIGINS=https://ktongue-enise.hf.space APPWRITE_ENDPOINT=https://fra.cloud.appwrite.io/v1 APPWRITE_PROJECT_ID= APPWRITE_API_KEY= ⚠ APPWRITE_DATABASE_ID= ``` ### 2ïžâƒŁ VĂ©rification Une fois configurĂ©, le space se redĂ©marrera automatiquement. Testez les endpoints: - Homepage: https://ktongue-enise.hf.space/ - Formations: https://ktongue-enise.hf.space/formations/ - API: https://ktongue-enise.hf.space/api/appwrite/test/ Voir `VERIFIER_DEPLOIEMENT.md` pour guide complet. ## 📚 Documentation | Document | Purpose | |----------|---------| | `QUICK_START.md` | DĂ©marrage rapide | | `DEPLOYMENT_CHECKLIST.md` | Checklist complĂšte | | `VERIFIER_DEPLOIEMENT.md` | Guide vĂ©rification (FR) | | `DEPLOYMENT_STATUS.md` | État du dĂ©ploiement | | `FIXES_APPLIED.md` | Corrections appliquĂ©es | ## 🔧 Technologies | Composant | Version | |-----------|---------| | Python | 3.11+ | | Django | 5.0+ | | Appwrite | 1.0+ | | WhiteNoise | 6.5+ | | PostgreSQL | optionnel | ## 📊 Structure du Projet ``` enise-site/ ├── enise_site/ # Django project │ ├── settings.py # Configuration │ ├── urls.py # URL routing │ └── wsgi.py # WSGI entry ├── app_core/ # Main application │ ├── models.py # ORM models │ ├── views.py # Views │ ├── urls.py # Routes │ └── templates/ # HTML templates ├── app_formations/ # Formations app ├── static/ # CSS, JS, images ├── media/ # User uploads ├── Dockerfile # Docker config ├── run.sh # Startup script ├── requirements.txt # Dependencies └── manage.py # Django CLI ``` ## 🔐 Configuration de SĂ©curitĂ© ### ✅ AppliquĂ©e - Credentials MongoDB supprimĂ©es ✓ - SECRET_KEY en variables d'env ✓ - DEBUG=False en production ✓ - WhiteNoise pour fichiers statiques ✓ - CSRF protection configurĂ©e ✓ - API keys en HF Secrets ✓ ### ⚠ À Faire - Jamais committer `.env` - RĂ©gĂ©nĂ©rer SECRET_KEY pour chaque deployment - Utiliser HTTPS en production - Limiter ALLOWED_HOSTS si besoin ## đŸ§Ș Tests ### Tests Locaux ```bash # VĂ©rifier configuration python manage.py check # Tester dĂ©ploiement python test_deployment.py # VĂ©rifier variables d'env python check_env.py ``` ### Tests HF Spaces 1. VĂ©rifier status "Running" 2. Tester endpoints (voir `VERIFIER_DEPLOIEMENT.md`) 3. VĂ©rifier logs en cas d'erreur ## 🚹 DĂ©pannage ### Space "Building" - C'est normal, attendez 5-10 minutes - VĂ©rifiez logs si > 15 min ### HTTP 400 - VĂ©rifier `SECRET_KEY` configurĂ©e - VĂ©rifier `ALLOWED_HOSTS=*` - VĂ©rifier `DEBUG=False` ### API Appwrite Ă©choue - VĂ©rifier `APPWRITE_API_KEY` - VĂ©rifier IDs du projet/database - RĂ©gĂ©nĂ©rer clĂ© si besoin ### Files statiques ne chargent pas - WhiteNoise est activĂ© ✓ - VĂ©rifier `.log` pour erreurs - RedĂ©marrer le space Voir `VERIFIER_DEPLOIEMENT.md` pour plus de solutions. ## 📈 Monitoring VĂ©rifiez rĂ©guliĂšrement: 1. **Status du Space**: https://huggingface.co/spaces/ktongue/ENISE 2. **Logs**: Settings → Logs 3. **Endpoints**: Tester rĂ©guliĂšrement 4. **Errors**: Chercher "ERROR" dans les logs ## 🔄 Mise Ă  Jour Pour dĂ©ployer une mise Ă  jour: ```bash # 1. Faire changements localement # 2. Tester localement python manage.py check # 3. Commit et push git add . git commit -m "Description" git push origin main # 4. HF Spaces redĂ©ploie automatiquement # 5. VĂ©rifier logs et endpoints ``` ## 📞 Support - **Issues**: https://github.com/tiffank1802/enise-site-2/issues - **Docs**: Voir fichiers `*.md` dans le repo - **Appwrite**: https://console.appwrite.io ## 📝 Notes Importantes 1. **Credentials**: Ne jamais committer secrets 2. **Branches**: Main = production, utilisez branches pour dev 3. **Migrations**: Auto-exĂ©cutĂ©es par `run.sh` 4. **Static Files**: Auto-collectĂ©s par `run.sh` 5. **Logs**: Disponibles dans HF Spaces Settings ## ✅ DerniĂšre VĂ©rification Avant de considĂ©rer le dĂ©ploiement comme "done": - [ ] Space status = "Running" - [ ] Pas d'erreurs dans les logs - [ ] Homepage charge (200 OK) - [ ] Formations visibles - [ ] API test rĂ©pond - [ ] Static files chargent - [ ] Admin panel accessible - [ ] Appwrite connectĂ© (avec API Key) ## 📊 Status - **Code**: ✅ Production-ready - **Tests**: ✅ Tous passent - **Documentation**: ✅ ComplĂšte - **Deployment**: ✅ PrĂȘt **DerniĂšre mise Ă  jour**: Jan 30, 2025 --- Pour commencer, consultez `QUICK_START.md` ou `VERIFIER_DEPLOIEMENT.md`.