# 📋 Guide des Scripts FailDaily

## 🗂️ Structure Actuelle (Optimisée)

Après nettoyage, voici les scripts essentiels conservés pour votre API FailDaily :

### 🐳 **Scripts Docker (Développement Local)**

#### `docker/start-local.ps1` - **SCRIPT PRINCIPAL**
- **Usage** : `.\start-local.ps1 [--with-data] [--rebuild]`
- **Fonction** : Lance l'environnement Docker local complet
- **Options** :
  - `--with-data` : Importe la structure de base de données
  - `--rebuild` : Force la reconstruction des images
- **URLs après lancement** :
  - Frontend: http://localhost:8080
  - Backend: http://localhost:3000
  - MySQL: localhost:3306

#### `docker/deploy.ps1` & `docker/deploy.sh`
- **Usage** : `.\deploy.ps1` ou `./deploy.sh`
- **Fonction** : Déploiement Docker local simple
- **Actions** : Arrêt → Nettoyage → Build → Démarrage

#### `docker/status.ps1` - **MONITORING**
- **Usage** : `.\status.ps1`
- **Fonction** : Vérification complète de l'état des services
- **Vérifie** :
  - ✅ Statut Docker
  - ✅ Conteneurs actifs
  - ✅ Backend API (http://localhost:3001)
  - ✅ Frontend (http://localhost:8081)
  - ✅ Base de données MySQL

#### `docker/sync-from-ovh.ps1` - **SYNCHRONISATION**
- **Usage** : `.\sync-from-ovh.ps1 -ServerHost 'IP' -ServerUser 'user'`
- **Fonction** : Synchronise les données OVH vers local
- **Options** :
  - `-ServerHost` : IP du serveur OVH
  - `-ServerUser` : Utilisateur SSH
  - `-SshKey` : Clé SSH (optionnel)
  - `-StructureOnly` : Structure seule
  - `-FullData` : Données complètes

---

### 🚀 **Scripts Production (Serveur OVH)**

#### `docker/production/install.sh` - **INSTALLATION SERVEUR**
- **Usage** : `./install.sh` (sur serveur Linux)
- **Fonction** : Installation automatique complète sur OVH
- **Installe** :
  - Docker + Docker Compose
  - Dépendances système
  - Configuration SSL
  - Certificats

#### `docker/production/deploy.sh` - **DÉPLOIEMENT PRODUCTION**
- **Usage** : `./deploy.sh`
- **Fonction** : Déploiement production avec sauvegardes
- **Actions** :
  - ✅ Vérifications prérequis
  - 💾 Sauvegarde automatique de la DB
  - 🛑 Arrêt des anciens conteneurs
  - 🔨 Build et démarrage
  - ✅ Tests de santé

#### `docker/production/quick-deploy.sh` - **DÉPLOIEMENT RAPIDE**
- **Usage** : `./quick-deploy.sh`
- **Fonction** : Déploiement ultra-rapide (sans sauvegarde)
- **Utilisation** : Déploiements de développement fréquents

#### `docker/production/deploy-traefik.sh` & `.ps1` - **HTTPS/SSL**
- **Usage** : `./deploy-traefik.sh`
- **Fonction** : Déploiement avec Traefik + SSL automatique
- **Résultat** :
  - 🌐 https://faildaily.com
  - 📊 https://api.faildaily.com
  - 📋 Dashboard Traefik

---

### 🧪 **Scripts DevOps (Tests & Déploiement)**

#### `devops/scripts/test.ps1` & `test.sh` - **TESTS**
- **Usage** : `.\test.ps1 [frontend|backend|e2e|all] [-Coverage] [-Watch]`
- **Tests disponibles** :
  - `frontend` : Tests Angular/Ionic
  - `backend` : Tests API Node.js
  - `e2e` : Tests end-to-end
  - `all` : Tous les tests
- **Options** :
  - `-Coverage` : Rapport de couverture
  - `-Watch` : Mode surveillance

#### `devops/scripts/load-test.ps1` - **TESTS DE CHARGE**
- **Usage** : `.\load-test.ps1 [api|registration|all] [nb_users]`
- **Fonction** : Tests de performance simplifiés
- **Exemples** :
  - `.\load-test.ps1 api 10` : Test API avec 10 utilisateurs
  - `.\load-test.ps1 registration 5` : Test inscription

#### `devops/scripts/deploy.ps1` - **DÉPLOIEMENT ENVIRONNEMENTS**
- **Usage** : `.\deploy.ps1 [staging|production] [version]`
- **Fonction** : Déploiement multi-environnements
- **Sécurité** : Confirmation requise pour production

#### `devops/scripts/status.ps1` - **MONITORING DEVOPS**
- **Usage** : `.\status.ps1`
- **Fonction** : Statut complet de l'environnement de développement

---

## 🎯 **Scripts Supprimés (Justifications)**

| Script Supprimé | Raison | Remplacement |
|------------------|---------|--------------|
| `fix-icons.ps1` | Fix ponctuel terminé | - |
| `devops/scripts/deploy.sh` | Doublon | `docker/deploy.sh` |
| `devops/scripts/reset-repo.ps1` | Trop risqué | Commandes git manuelles |
| `devops/scripts/dev-workflow.ps1` | Redondant | Scripts Docker |
| `devops/scripts/start.ps1/.sh` | Redondant | `docker/start-local.ps1` |
| `devops/scripts/load-test.sh` | Doublon | `load-test.ps1` |
| `devops/scripts/performance-analysis.ps1` | Trop basique | npm audit |
| `backend-api/tests/run-with-server.ps1` | Obsolète | Scripts test globaux |
| `backend-api/tests/fix-fetch-imports.ps1` | Fix ponctuel terminé | - |

---

## 📊 **Résultat du Nettoyage**

- ✅ **Scripts conservés** : 15 (essentiels)
- ❌ **Scripts supprimés** : 9 (redondants/obsolètes)
- 🎯 **Réduction** : 37.5% de scripts en moins
- 💯 **Fonctionnalités** : 100% préservées

---

## 🚀 **Usage Recommandé**

### Pour le développement local :
```powershell
# Lancement complet avec données
.\docker\start-local.ps1 --with-data

# Vérification du statut
.\docker\status.ps1

# Tests
.\devops\scripts\test.ps1 all
```

### Pour la production :
```bash
# Installation serveur (une fois)
./docker/production/install.sh

# Déploiement avec SSL
./docker/production/deploy-traefik.sh
```

### Pour la synchronisation :
```powershell
# Récupérer les données du serveur
.\docker\sync-from-ovh.ps1 -ServerHost "votre-ip-ovh" -ServerUser "root" -FullData
```

---

## 📝 **Notes Importantes**

1. **Windows** : Utilisez les scripts `.ps1`
2. **Linux** : Utilisez les scripts `.sh`
3. **Production** : Toujours tester en staging avant
4. **Sauvegardes** : Automatiques avec les scripts de production
5. **SSL** : Géré automatiquement par Traefik

---

*Guide généré automatiquement après optimisation des scripts - Septembre 2025*

---

## Backend API – Organisation des scripts

- ackend-api/scripts/debug/
  - debug-tables.js, debug-tables.sql, debug-users-profiles.sql, debug-limit-syntax.js, debug-sql-issue.js
- ackend-api/scripts/checks/
  - check-fails-structure.js, check-fails-quick.js, check-all-duplicates.js, check-moderation-status.js, check-tables.js, check-user.js, check-triggers.sql, profile-age-check.js
- ackend-api/scripts/maintenance/
  - fix-missing-badges.js, cleanup-orphans.sql, cleanup-profiles.sql, remove-duplicate-badges.js
- ackend-api/scripts/stats/
  - get-database-stats.js, get-real-stats.js

Exemples d’exécution

`ash
# Vérification structure BDD
node backend-api/scripts/checks/check-fails-structure.js

# Statistiques base de données
node backend-api/scripts/stats/get-database-stats.js

# Nettoyage données orphelines (MySQL CLI)
mysql -u root -p faildaily < backend-api/scripts/maintenance/cleanup-orphans.sql
`
