145 lines
3.0 KiB
Markdown
145 lines
3.0 KiB
Markdown
# 🐳 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` |