# 🐳 Docker Configuration - Zebra Power ## Images mises Ă  jour ### Backend - **Python 3.13** (version la plus rĂ©cente) - **uv** pour installation rapide des dĂ©pendances - **4 workers** en production - Health checks intĂ©grĂ©s ### Frontend - **Node.js 20** (LTS) - Build optimisĂ© pour production - Health checks intĂ©grĂ©s ### Nginx - **Version 1.25** - SĂ©curitĂ© renforcĂ©e - Health checks intĂ©grĂ©s ## Configurations disponibles ### 🔧 DĂ©veloppement ```bash # DĂ©marrer en mode dĂ©veloppement (avec hot reload) docker-compose -f docker-compose.dev.yml up -d # Voir les logs docker-compose -f docker-compose.dev.yml logs -f # ArrĂȘter docker-compose -f docker-compose.dev.yml down ``` **FonctionnalitĂ©s dĂ©veloppement :** - Auto-reload backend et frontend - Volumes montĂ©s pour Ă©dition en temps rĂ©el - Ports exposĂ©s directement (backend: 8000, frontend: 3000) ### 🚀 Production ```bash # DĂ©marrer en production (via nginx) docker-compose up -d # Voir les logs docker-compose logs -f # ArrĂȘter docker-compose down ``` **FonctionnalitĂ©s production :** - Applications buildĂ©es et optimisĂ©es - Reverse proxy nginx sur port 80 - Health checks et redĂ©marrages automatiques - 4 workers backend pour performance ## Commandes utiles ### Build des images ```bash # Reconstruire toutes les images docker-compose build --no-cache # Reconstruire une image spĂ©cifique docker-compose build backend ``` ### Migration des donnĂ©es ```bash # AccĂ©der au container backend docker exec -it zebra_backend bash # Lancer la migration uv run python migrate_to_unified_hosts.py ``` ### Tests ```bash # Tester l'API depuis le container docker exec -it zebra_backend uv run python test_api.py ``` ### Monitoring ```bash # Status des services docker-compose ps # Health check status docker inspect --format='{{.State.Health.Status}}' zebra_backend # MĂ©triques ressources docker stats ``` ## Structure des volumes ``` data/ ├── zebra.db # Base de donnĂ©es SQLite └── backup_*.json # Sauvegardes migration (si appliquĂ©e) ``` ## RĂ©seau ### Mode Host (Backend) Le backend utilise `network_mode: host` pour envoyer les paquets Wake-on-LAN. Ceci est **requis** pour le fonctionnement WOL. ### Ports exposĂ©s - **Production** : Port 80 (nginx) - **DĂ©veloppement** : - Backend : 8000 - Frontend : 3000 - Nginx : 80 ## SĂ©curitĂ© - Tokens nginx cachĂ©s (`server_tokens off`) - Health checks pour haute disponibilitĂ© - Variables d'environnement pour configuration - Volumes restreints aux donnĂ©es nĂ©cessaires ## DĂ©pannage ### Backend ne dĂ©marre pas ```bash # VĂ©rifier les logs docker-compose logs backend # VĂ©rifier les dĂ©pendances docker exec -it zebra_backend uv pip list ``` ### Frontend ne compile pas ```bash # VĂ©rifier les logs de build docker-compose logs frontend # Rebuild sans cache docker-compose build --no-cache frontend ``` ### WOL ne fonctionne pas - VĂ©rifier que `network_mode: host` est activĂ© pour le backend - Tester depuis l'host : `wakeonlan 00:11:22:33:44:55`