git clone https://github.com/aouggad-web/afcfta-final-001.git
cd afcfta-final-001
cp .env.example .env
# Ăditer .env avec vos credentials
nano .env
docker-compose up -d
# Vérifier les conteneurs
docker-compose ps
# Vérifier les logs
docker-compose logs -f backend
# Tester l'API
curl http://localhost:8000/health
EMAIL_ENABLED=true
EMAIL_SMTP_HOST=smtp.gmail.com
EMAIL_SMTP_PORT=587
EMAIL_SMTP_USER=your-email@gmail.com
EMAIL_SMTP_PASSWORD=xxxx-xxxx-xxxx-xxxx
EMAIL_FROM=noreply@afcfta.com
EMAIL_TO=admin@domain.com,ops@domain.com
EMAIL_ENABLED=true
EMAIL_SMTP_HOST=smtp-mail.outlook.com
EMAIL_SMTP_PORT=587
EMAIL_SMTP_USER=your-email@outlook.com
EMAIL_SMTP_PASSWORD=your-password
EMAIL_FROM=your-email@outlook.com
EMAIL_TO=admin@domain.com
EMAIL_ENABLED=true
EMAIL_SMTP_HOST=smtp.sendgrid.net
EMAIL_SMTP_PORT=587
EMAIL_SMTP_USER=apikey
EMAIL_SMTP_PASSWORD=SG.your-sendgrid-api-key
EMAIL_FROM=noreply@yourdomain.com
EMAIL_TO=admin@domain.com
SLACK_ENABLED=true
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX
SLACK_CHANNEL=#afcfta-monitoring
# Démarrer les services
docker-compose up -d
# ArrĂȘter les services
docker-compose down
# Redémarrer un service
docker-compose restart backend
# Voir les logs en temps réel
docker-compose logs -f
# Voir les logs d'un service spécifique
docker-compose logs -f backend
docker-compose logs -f mongodb
# Voir l'état des conteneurs
docker-compose ps
# Sauvegarder la base de données
docker-compose exec mongodb mongodump --out /data/backup
# Restaurer la base de données
docker-compose exec mongodb mongorestore /data/backup
# Accéder au shell MongoDB
docker-compose exec mongodb mongosh
# Supprimer les volumes (ATTENTION: perte de données)
docker-compose down -v
# Récupérer les derniÚres modifications
git pull origin main
# Rebuilder et redémarrer
docker-compose up -d --build
# Voir les changements appliqués
docker-compose logs -f backend
# Entrer dans le conteneur backend
docker-compose exec backend bash
# Vérifier les variables d'environnement
docker-compose exec backend env | grep EMAIL
docker-compose exec backend env | grep SLACK
# Tester la connectivité MongoDB
docker-compose exec backend python -c "from pymongo import MongoClient; client = MongoClient('mongodb://mongodb:27017'); print(client.server_info())"
LâAPI expose un endpoint de santĂ©:
curl http://localhost:8000/health
Réponse attendue:
{
"status": "healthy",
"database": "connected",
"timestamp": "2025-02-06T12:00:00Z"
}
Les logs sont stockés dans:
docker-compose logs backenddocker-compose logs mongodb./worker-logs/ (sur lâhĂŽte)VĂ©rifier lâutilisation des ressources:
docker stats
MONGO_ROOT_PASSWORD=your-very-secure-password-here
docker-compose.yml pour ne pas exposer MongoDB (port 27017).envservices:
backend:
deploy:
resources:
limits:
cpus: '2'
memory: 2G
reservations:
cpus: '1'
memory: 1G
services:
backend:
command: uvicorn backend.server:app --host 0.0.0.0 --port 8000 --workers 4
Créer un cron job pour sauvegarder MongoDB:
# Ăditer crontab
crontab -e
# Ajouter (sauvegarde quotidienne Ă 2h du matin)
0 2 * * * cd /path/to/afcfta-final-001 && docker-compose exec -T mongodb mongodump --out /data/backup/$(date +\%Y\%m\%d)
docker-compose logs backend
docker-compose ps mongodb
docker-compose logs mongodb
docker-compose config
docker-compose exec backend env | grep EMAIL
docker-compose exec backend env | grep SLACK
docker-compose exec backend python -c "
import smtplib
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
print('SMTP connection OK')
"
docker-compose logs backend | grep -i notification
docker-compose ps mongodb
docker-compose exec mongodb mongosh --eval "db.adminCommand('ping')"
docker network ls
docker network inspect afcfta_afcfta-network
Pour obtenir de lâaide: