feat: ajout Docker Compose et documentation outils

- Dockerfile backend (Python 3.11 + Poetry + Playwright/Chromium)
- Dockerfile frontend (Node 20 + Vite build + Nginx)
- docker-compose.yml avec services et volumes persistants
- Proxy Nginx pour API (/api -> backend:8008)
- Healthchecks sur les deux services
- Configuration Docker (.env.docker, .dockerignore)
- Documentation déploiement Docker dans README
- Fichier docs/tools_used.md avec liste des technologies

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-25 08:01:55 +01:00
parent b89e9e15df
commit 5c3e6b84a4
12 changed files with 705 additions and 75 deletions

View File

@@ -40,9 +40,74 @@ Suite self-hosted pour suivre les prix et l'état des produits Amazon.fr (et aut
- `.venv/bin/coverage run -m pytest`
- `.venv/bin/coverage report -m`
## Déploiement
1. `docker compose up --build` (à configurer)
## Déploiement Docker
### Lancement rapide
```bash
# Copier la configuration Docker
cp .env.docker .env
# Build et lancement
docker compose up --build -d
# Voir les logs
docker compose logs -f
```
### Services
| Service | Port | Description |
|---------|------|-------------|
| frontend | 8080 | Interface web (Nginx) |
| backend | 8008 | API FastAPI + Scheduler |
### Volumes persistants
- `suivi_produit_data` : base SQLite + raw JSON (`backend/data/`)
- `suivi_produit_logs` : fichiers de log (`backend/logs/`)
### Commandes utiles
```bash
# Arrêter les services
docker compose down
# Reconstruire après modification
docker compose up --build -d
# Voir l'état des services
docker compose ps
# Accéder aux logs d'un service
docker compose logs backend -f
docker compose logs frontend -f
# Backup de la base (volume Docker)
docker run --rm -v suivi_produit_data:/data -v $(pwd):/backup alpine tar cvf /backup/data_backup.tar /data
```
### Configuration
Variables d'environnement (`.env`) :
- `API_PORT` : port du backend (défaut: 8008)
- `FRONTEND_PORT` : port du frontend (défaut: 8080)
- `APP_ENV` : environnement (development/production)
- `LOG_LEVEL` : niveau de log (DEBUG/INFO/WARNING/ERROR)
## Notes
- Le scraping est volontairement lent (15-20 produits/jour) pour éviter le blocage.
- Le raw JSON est conservé pendant 30 jours dans `backend/data/raw`.
Voici les commandes pour lancer les services :
Backend (port 8008) :
cd /home/gilles/Documents/vscode/suivi_produit
.venv/bin/python -m uvicorn backend.app.main:app --host 0.0.0.0 --port 8008 --reload
Frontend (port 5173) :
cd /home/gilles/Documents/vscode/suivi_produit/frontend
npm run dev
Ou en une seule commande avec Poetry pour le backend :
poetry run uvicorn backend.app.main:app --host 0.0.0.0 --port 8008 --reload