# Guide de Déploiement OVH
## Application Amendes Football — Ligue de Martinique

---

## PRÉREQUIS

### 1. Commande du VPS OVH
- **Offre recommandée** : OVH VPS SSD Starter (~3,99€/mois)
- **OS** : Ubuntu 22.04 LTS
- **RAM** : 2 Go minimum
- Commandez sur : https://www.ovhcloud.com/fr/vps/

### 2. Configuration DNS (dans l'espace client OVH)
Une fois le VPS livré, notez son adresse IP, puis dans `Domaines > Zone DNS` :

```
amendes.ligue-martinique.fff.fr   A   [IP_DU_VPS]
```

⏱ Propagation DNS : 15 minutes à 4 heures.

### 3. Compte Stripe
- Tableau de bord : https://dashboard.stripe.com
- Récupérez vos clés dans `Développeurs > Clés API`
- Clé publique : `pk_live_...`
- Clé secrète : `sk_live_...`

---

## ÉTAPE 1 — Connexion SSH au VPS

```bash
ssh root@[IP_DU_VPS]
```

---

## ÉTAPE 2 — Installation du serveur

Copiez le script `01-install-server.sh` sur le VPS et exécutez-le :

```bash
# Depuis votre machine locale :
scp deploy/01-install-server.sh root@[IP_DU_VPS]:/root/

# Sur le VPS :
chmod +x /root/01-install-server.sh
sudo bash /root/01-install-server.sh
```

**Ce script installe automatiquement :**
- Nginx 1.24
- PHP 8.3-FPM avec toutes les extensions
- MySQL 8.0
- Composer 2
- Node.js 20 LTS
- Certbot (Let's Encrypt)

📋 **Notez le mot de passe BDD généré automatiquement** — affiché à la fin du script.

---

## ÉTAPE 3 — Déploiement du code

### Option A — Via Git (recommandé)

```bash
# Sur le VPS, configurer la clé SSH pour GitHub/GitLab
ssh-keygen -t ed25519 -C "vps-amendes@ligue-martinique"
cat /root/.ssh/id_ed25519.pub
# Copiez cette clé dans Settings > Deploy Keys de votre dépôt

# Modifier le repo dans deploy/02-deploy-app.sh
# GIT_REPO="git@github.com:VOTRE_ORG/amendes-football.git"

# Premier déploiement
bash /root/02-deploy-app.sh --first-deploy
```

### Option B — Via SFTP (sans Git)

```bash
# Depuis votre machine locale, copier les fichiers
scp -r ./symfony-amendes/* root@[IP_DU_VPS]:/var/www/amendes-football/

# Sur le VPS, installer les dépendances
cd /var/www/amendes-football
composer install --no-dev --optimize-autoloader
npm ci && npm run build
php bin/console doctrine:migrations:migrate --no-interaction --env=prod
php bin/console cache:warmup --env=prod
chown -R www-data:www-data var/ public/
```

---

## ÉTAPE 4 — Configuration des clés Stripe

```bash
nano /var/www/amendes-football/.env.local
```

Remplacer les placeholders :

```dotenv
STRIPE_PUBLIC_KEY=pk_live_VOTRE_CLE_ICI
STRIPE_SECRET_KEY=sk_live_VOTRE_CLE_ICI
STRIPE_WEBHOOK_SECRET=whsec_VOTRE_SECRET_ICI  # ← étape 6
```

---

## ÉTAPE 5 — Activation HTTPS

```bash
# Vérifier que le DNS est propagé avant cette étape !
dig amendes.ligue-martinique.fff.fr

# Activer HTTPS
bash /root/03-activate-https.sh amendes.ligue-martinique.fff.fr
```

---

## ÉTAPE 6 — Configuration du webhook Stripe

1. Connectez-vous sur https://dashboard.stripe.com
2. Allez dans `Développeurs > Webhooks`
3. Cliquez `Ajouter un endpoint`
4. **URL** : `https://amendes.ligue-martinique.fff.fr/stripe/webhook`
5. **Événements à écouter** :
   - `payment_intent.succeeded`
   - `payment_intent.payment_failed`
6. Copiez le **Signing secret** (`whsec_...`)
7. Collez-le dans `.env.local` → `STRIPE_WEBHOOK_SECRET`

---

## ÉTAPE 7 — Créer le compte admin

```bash
cd /var/www/amendes-football
php bin/console app:create-admin \
    --email="admin@ligue-martinique.fff.fr" \
    --password="VotreMotDePasseSecurise!" \
    --env=prod
```

---

## ÉTAPE 8 — Premier import Excel

1. Connectez-vous sur `https://amendes.ligue-martinique.fff.fr`
2. Aller dans `Administration > Importer Excel`
3. Uploader votre fichier `.xlsx`
4. Vérifier la prévisualisation
5. Confirmer l'import

---

## MISES À JOUR FUTURES

Pour chaque nouvelle version du code :

```bash
ssh root@[IP_DU_VPS]
cd /var/www/amendes-football
sudo -u www-data bash /root/02-deploy-app.sh
```

---

## SURVEILLANCE ET MAINTENANCE

### Logs à surveiller

```bash
# Logs Nginx
tail -f /var/log/nginx/amendes-football.error.log

# Logs PHP-FPM
tail -f /var/log/php8.3-fpm.log

# Logs Symfony (prod)
tail -f /var/www/amendes-football/var/log/prod.log

# Logs suspensions (cron quotidien)
tail -f /var/log/amendes-suspensions.log
```

### Sauvegarde base de données

```bash
# Sauvegarde manuelle
mysqldump amendes_football | gzip > /root/backup_$(date +%Y%m%d).sql.gz

# Ajouter en cron pour sauvegarde automatique quotidienne
echo "0 3 * * * root mysqldump amendes_football | gzip > /root/backups/db_\$(date +\%Y\%m\%d).sql.gz" >> /etc/cron.d/amendes-football
```

### Test de santé

```bash
curl -I https://amendes.ligue-martinique.fff.fr
# Attendu : HTTP/2 200 ou 302
```

---

## RÉCAPITULATIF DES URLS

| URL | Description |
|-----|-------------|
| `/` | Page de connexion |
| `/club/` | Tableau de bord club |
| `/club/amendes` | Liste des amendes du club |
| `/public/suspendus` | Vue inter-clubs (suspendus + impayés) |
| `/admin/` | Interface administrateur |
| `/admin/import` | Import Excel |
| `/stripe/webhook` | Webhook Stripe (POST uniquement) |

---

## COÛTS MENSUELS ESTIMÉS

| Service | Coût |
|---------|------|
| OVH VPS SSD Starter | ~4 €/mois |
| Nom de domaine (si nouveau) | ~10 €/an |
| Certificat SSL | **Gratuit** (Let's Encrypt) |
| Stripe | 1,5% + 0,25€ par transaction |
| **Total fixe** | **~4 €/mois** |

---

*Document généré automatiquement — Ligue de Football de Martinique*
