# Déploiement DPEF — https://dpef.mr/newVersion

## Contenu du zip

```
newVersion/            -> à placer dans public_html/newVersion
  index.html, assets/  -> site React (compilé pour /newVersion/)
  .htaccess            -> redirige toutes les pages vers index.html (sauf api/)
  api/                 -> API PHP (vendor/ inclus, pas besoin de Composer)
    .env               -> configuration production (A COMPLETER)
    storage/media/     -> images (logos, actualités, médiathèque)
  mp/uploads/          -> documents PDF (non accessibles directement)
database/dpef_newversion.sql -> base de données complète
```

## Étapes (cPanel)

1. **Base de données** — cPanel > *Bases de données MySQL* :
   - créer une base **neuve**, ex. `userdpl_newversion` (ne pas utiliser la base du site actuel :
     l'import remplacerait ses tables) ;
   - créer / réutiliser un utilisateur MySQL et lui donner *Tous les privilèges* sur cette base ;
   - phpMyAdmin > sélectionner la base > *Importer* > `database/dpef_newversion.sql`.
2. **Fichiers** — *Gestionnaire de fichiers* > `public_html` > *Charger* le zip > *Extraire*.
   Déplacer le dossier `newVersion/` dans `public_html/` (le dossier `database/` n'a pas à être en ligne :
   le supprimer après l'import).
   Activer *Afficher les fichiers cachés* pour voir les `.htaccess` et `.env`.
3. **Configuration** — éditer `public_html/newVersion/api/.env` :
   `DB_NAME`, `DB_USER`, `DB_PASS` (étape 1). `JWT_SECRET` est déjà généré — ne pas le partager.
4. **PHP** — cPanel > *MultiPHP Manager* : PHP **8.1 ou plus** pour le domaine
   (extensions `pdo_mysql`, `fileinfo`, `mbstring`).
5. **Vérifier** :
   - https://dpef.mr/newVersion/api/site-settings -> doit renvoyer du JSON `{"data":...}`
   - https://dpef.mr/newVersion/ -> page d'accueil ; ouvrir un document PDF et une actualité
   - https://dpef.mr/newVersion/admin/login -> connexion avec les comptes existants
     (mêmes utilisateurs que la base locale).

## En cas de problème

- **Erreur 500 / page blanche sur l'API** : identifiants `.env` incorrects ou PHP < 8.1.
  Mettre temporairement `APP_DEBUG=true` pour voir le message, puis remettre `false`.
- **404 en rechargeant une page** (ex. `/newVersion/actualites`) : le `.htaccess` de
  `newVersion/` n'a pas été extrait (fichier caché) ou `mod_rewrite` est désactivé.
- **Réutiliser les PDF du site actuel** au lieu de ceux du zip : dans `.env`,
  `UPLOAD_DIR=../../mp/uploads` (si le site actuel les range dans `public_html/mp/uploads`).

## Redéployer une nouvelle version du site

Depuis `web/` : `npm run build:newversion`, puis remplacer `index.html` et `assets/`
dans `public_html/newVersion/` (ne pas toucher à `api/.env`, `api/storage/`, `mp/uploads/`).
