# 🚀 Guide de déploiement — JavaPax (Laravel) sur OVH

Ce guide explique comment mettre le nouveau site Laravel en ligne sur ton hébergement OVH,
**sans casser le référencement** (URLs conservées).

> 🟢 **Principe de prudence** : on déploie d'abord sur une **adresse de test**
> (sous-domaine), on vérifie TOUT, puis seulement on bascule `javapax.fr`.

---

## 0. Choix de l'hébergement

| Option | Pour qui | Remarque |
|--------|----------|----------|
| **Hébergement mutualisé** (ton offre actuelle cluster110) | Le plus simple, déjà payé | ✅ Suffisant pour ce site. Ce guide est écrit pour cette option. |
| **VPS OVH** (~5 €/mois) | Plus de contrôle/perf | Plus technique. À envisager seulement si besoin. |

👉 **Recommandation : on reste sur le mutualisé.**

Pré-requis sur l'hébergement : **PHP 8.2 minimum** (idéalement 8.3/8.4),
extensions `pdo_mysql`, `mbstring`, `openssl`, `tokenizer`, `xml` (présentes par défaut chez OVH).

---

## 1. Régler la version de PHP

À la racine de ton espace d'hébergement, crée/édite le fichier **`.ovhconfig`** :

```
app.engine=php
app.engine.version=8.3
http.firewall=security
environment=production
```

---

## 2. Envoyer le projet sur le serveur

### Méthode A — via Git (recommandée, si SSH activé)
Connecte-toi en SSH (`ssh.cluster110.hosting.ovh.net`) puis :
```bash
cd ~
git clone <url-de-ton-depot> javapax-laravel
cd javapax-laravel
composer install --no-dev --optimize-autoloader
```

### Méthode B — via FTP (FileZilla)
Téléverse tout le dossier `javapax-laravel` **SAUF** :
`node_modules/`, `.git/`, `tests/`.
⚠️ N'oublie pas le dossier `vendor/` (sinon lance `composer install` en SSH).

---

## 3. Définir le dossier racine sur `/public`

C'est le point **le plus important** sur un mutualisé : le web doit pointer
vers le sous-dossier `public/` de Laravel (jamais la racine du projet).

Dans le **Manager OVH → Hébergement → onglet « Multisite »** :
- Domaine : `test.javapax.fr` (sous-domaine de test) puis plus tard `www.javapax.fr`
- **Répertoire racine** : `javapax-laravel/public`

---

## 4. Configurer l'environnement (`.env`)

Sur le serveur, copie le modèle et complète-le :
```bash
cp .env.production.example .env
php artisan key:generate
```
Édite `.env` et renseigne les valeurs « À COMPLÉTER » :
- `DB_PASSWORD` (mot de passe de la base CloudDB `JavaPax`)
- `MAIL_USERNAME` / `MAIL_PASSWORD` (ta boîte mail OVH)
- `APP_URL` (= l'adresse de test au début, puis `https://www.javapax.fr`)

---

## 5. Créer les tables et importer le contenu

```bash
php artisan migrate --force
```
Puis importe le contenu, **au choix** :

- **Simple (phpMyAdmin)** : importe le fichier `database/javapax-content.sql`
  dans la base `JavaPax` via le phpMyAdmin OVH.
- **Ou en ligne de commande** (si `mysql` dispo) :
  ```bash
  mysql -h ba61419-001.eu.clouddb.ovh.net -P 35279 -u admin -p JavaPax < database/javapax-content.sql
  ```

---

## 6. Téléverser les images

Le dossier `public/wp-content/uploads/` (480 images, ~356 Mo) n'est pas dans Git.
Téléverse-le via **FTP** dans `javapax-laravel/public/wp-content/uploads/`.

---

## 7. Compiler les assets (CSS/JS)

Le dossier `public/build` n'est pas versionné : il faut le générer sur le serveur
(ou en local puis l'envoyer par FTP).

```bash
npm install
npm run build
```
> Si Node.js n'est pas disponible sur le mutualisé OVH, lance `npm run build` en local
> et téléverse le dossier `public/build/` par FTP.

## 8. Optimisations & permissions

```bash
php artisan storage:link
php artisan config:cache
php artisan route:cache
php artisan view:cache
chmod -R 775 storage bootstrap/cache
```

---

## 8. ✅ Vérifications sur l'adresse de TEST

Ouvre `https://test.javapax.fr` et vérifie :
- [ ] Page d'accueil OK (hero + images)
- [ ] Quelques articles : `/quelques-adresse-de-restaurant`, etc.
- [ ] Pages vitrine : `/logement`, `/tarifs`, `/le-bassin`…
- [ ] Le **back-office** `/admin` (connexion + édition)
- [ ] Le **formulaire de contact** (envoi d'un vrai email)
- [ ] Les images s'affichent bien

---

## 9. 🔁 Bascule finale du domaine

Quand tout est validé sur l'adresse de test :
1. Dans **Multisite**, fais pointer `www.javapax.fr` et `javapax.fr` vers `javapax-laravel/public`.
2. Mets `APP_URL=https://www.javapax.fr` dans `.env` puis `php artisan config:cache`.
3. Vérifie le **certificat SSL** (onglet « Certificats SSL » — Let's Encrypt gratuit OVH).
4. Teste une dizaine d'anciennes URLs (depuis le fichier `javapax-migration/urls-a-conserver.csv`).

> 💡 Garde l'ancien WordPress accessible quelques jours (en sous-dossier ou hors ligne)
> le temps de confirmer que tout est bon.

---

## 🆘 En cas de souci
- **Page blanche / erreur 500** → mets `APP_DEBUG=true` temporairement, regarde `storage/logs/laravel.log`.
- **Images manquantes** → vérifier que `uploads/` est bien téléversé au bon endroit.
- **Erreur base de données** → vérifier `DB_*` dans `.env` et que l'IP du serveur est autorisée
  (onglet « IPs autorisées » de la base CloudDB).

Pour toute étape, tu peux me redonner la main : je peux générer les commandes exactes
ou corriger la config.
