# 🚨 ALERTE SÉCURITÉ - GUIDE RAPIDE

## ⚠️ VOTRE PROJET A DES SECRETS EXPOSÉS SUR GITHUB !

---

## 🔥 ACTIONS URGENTES (Suivez dans l'ordre)

### 📍 ÉTAPE 1: Révoquer la clé OpenAI (5 minutes)

```
1. Ouvrir: https://platform.openai.com/api-keys
2. Se connecter à votre compte
3. Chercher la clé: sk-proj-f_HCilJnjO...
4. Cliquer sur "Revoke" (Révoquer)
5. Cliquer sur "+ Create new secret key"
6. Noter la nouvelle clé (elle ne sera montrée qu'une fois!)
```

✅ **Fait** : [ ]

---

### 📍 ÉTAPE 2: Changer les mots de passe MySQL (10 minutes)

```bash
# Se connecter au serveur
ssh root@51.68.39.60

# Entrer le mot de passe actuel: [VOTRE_MDP_ACTUEL]

# Dans le serveur, lancer MySQL
mysql -u root -p

# Entrer le mot de passe: [VOTRE_NOUVEAU_MDP]

# Changer le mot de passe root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'VotreNouveauMotDePasseForto123!';

# Changer le mot de passe faildaily
ALTER USER 'faildaily'@'%' IDENTIFIED BY 'AutreNouveauMotDePasseForto456!';

# Appliquer les changements
FLUSH PRIVILEGES;

# Quitter MySQL
exit;
```

✅ **Fait** : [ ]

---

### 📍 ÉTAPE 3: Générer un nouveau JWT Secret (2 minutes)

```bash
# Générer une clé aléatoire de 64 caractères
openssl rand -base64 64

# Copier le résultat (quelque chose comme):
# xB8Yq2...nombreux caractères...Zp4K=

# GARDER CETTE CLÉ POUR PLUS TARD
```

✅ **Fait** : [ ]  
Nouvelle clé JWT notée : [ ]

---

### 📍 ÉTAPE 4: Changer le mot de passe SSH (5 minutes)

```bash
# Toujours connecté au serveur
ssh root@51.68.39.60

# Changer le mot de passe
passwd

# Entrer un nouveau mot de passe fort
# (au moins 12 caractères, majuscules, minuscules, chiffres, symboles)

# Se déconnecter
exit

# TESTER la connexion avec le nouveau mot de passe
ssh root@51.68.39.60
```

✅ **Fait** : [ ]

---

### 📍 ÉTAPE 5: Créer le nouveau fichier .env (15 minutes)

```bash
# Aller dans le dossier du projet
cd "d:\WEB API\FailDaily"

# Copier le template
cp .env.example .env

# Ouvrir .env avec un éditeur
code .env
# ou
notepad .env

# Remplir avec vos NOUVELLES valeurs:
# - DB_PASSWORD=VotreNouveauMotDePasseForto123!
# - JWT_SECRET=(la clé générée à l'étape 3)
# - OPENAI_API_KEY=(la nouvelle clé de l'étape 1)
```

✅ **Fait** : [ ]

---

### 📍 ÉTAPE 6: Nettoyer l'historique Git (30 minutes)

⚠️ **ATTENTION**: Cette étape va modifier l'historique Git!

```bash
# Aller dans le dossier du projet
cd "d:\WEB API\FailDaily"

# Télécharger BFG Repo-Cleaner
# Windows: Télécharger depuis https://rtyley.github.io/bfg-repo-cleaner/
# Sauvegarder dans d:\WEB API\FailDaily\bfg.jar

# Ou utiliser le script automatique
bash cleanup-sensitive-data.sh

# Si vous préférez manuel:
java -jar bfg.jar --delete-files "deploy-ovh.sh" .
java -jar bfg.jar --delete-files ".env.production" .
java -jar bfg.jar --delete-files ".env.logs" .

# Nettoyer Git
git reflog expire --expire=now --all
git gc --prune=now --aggressive

# Forcer le push (ATTENTION!)
git push origin --force --all
```

✅ **Fait** : [ ]

---

### 📍 ÉTAPE 7: Redéployer l'application (30 minutes)

```bash
# Copier le nouveau .env vers le serveur
scp .env root@51.68.39.60:/root/faildaily/backend-api/.env

# Se connecter au serveur
ssh root@51.68.39.60

# Redémarrer les conteneurs Docker
cd /root/faildaily
docker-compose restart

# Vérifier que tout fonctionne
docker-compose ps
docker-compose logs -f backend
```

✅ **Fait** : [ ]

---

## ✅ VÉRIFICATION FINALE

Cochez chaque élément:

- [ ] Clé OpenAI révoquée et nouvelle créée
- [ ] Mot de passe MySQL root changé
- [ ] Mot de passe MySQL faildaily changé  
- [ ] JWT Secret régénéré
- [ ] Mot de passe SSH serveur changé
- [ ] Nouveau fichier .env créé avec NOUVELLES valeurs
- [ ] Historique Git nettoyé
- [ ] Push forcé effectué sur GitHub
- [ ] Application redéployée
- [ ] Tests effectués - tout fonctionne

---

## 🎯 APRÈS AVOIR TOUT FAIT

1. Testez votre application: https://faildaily.com
2. Vérifiez qu'aucun secret n'apparaît dans Git:
   ```bash
   git log --all --full-history -- "*/.env*"
   ```
3. Supprimez les anciens fichiers .env locaux:
   ```bash
   # NE PAS committer ces fichiers!
   rm docker/.env.logs
   rm docker/.env.production.template
   # etc...
   ```

---

## 🆘 EN CAS DE PROBLÈME

1. **L'application ne démarre pas**
   - Vérifier les logs: `docker-compose logs -f`
   - Vérifier que le .env est correct
   - Vérifier les mots de passe MySQL

2. **Git push --force échoue**
   - Demander de l'aide sur GitHub
   - Voir la documentation BFG

3. **Connexion MySQL refusée**
   - Vérifier que le nouveau mot de passe est correct
   - Réinitialiser MySQL si nécessaire

4. **Besoin d'aide**
   - Lire: `SECURITY_ALERT_URGENT.md`
   - Lire: `SECURITY_AUDIT_REPORT_20251030.md`
   - Consulter: https://docs.github.com/

---

## ⏰ TEMPS TOTAL ESTIMÉ

- **Minimum**: 1h30 (si tout se passe bien)
- **Moyen**: 2h30 (avec quelques ajustements)
- **Maximum**: 4h (si problèmes rencontrés)

---

## 🎯 OBJECTIF

**Avoir un système 100% sécurisé avec:**
- ✅ Aucun secret dans l'historique Git
- ✅ Toutes les clés révoquées et régénérées
- ✅ Tous les mots de passe changés
- ✅ Application fonctionnelle et sécurisée

---

**📅 À faire AUJOURD'HUI - 30 octobre 2025**

**Bon courage! 💪**
