# Héberger le simulateur chez o2switch

Reprise interne RD Portage (octobre 2026), après la sortie de Vercel.
Complète la section « Héberger hors Vercel » du README.

## Principe

o2switch fait tourner les applications Node.js via cPanel → **Setup Node.js
App** (Phusion Passenger). Passenger lance `server.js` (à la racine), qui
équivaut à `next start`. Le domaine reste géré dans la zone DNS o2switch.

## Mise en place (une fois)

1. **cPanel → Domaines** : créer le sous-domaine de test
   `test-simulateur.rdportage.com` (racine : `~/simulateur-test`).
2. **cPanel → Setup Node.js App → Create Application** :
   - Node.js : la version la plus récente proposée (≥ 18.17, idéalement 22) ;
   - Application mode : Production ;
   - Application root : `simulateur-test` ;
   - Application URL : `test-simulateur.rdportage.com` ;
   - Application startup file : `server.js`.
3. **Code** : cloner le dépôt `ridchadata/rdportage-funnel` dans
   `~/simulateur-test` (cPanel → Git Version Control, ou SSH + clé de
   déploiement en lecture seule).
4. **Variables d'environnement** (même écran Setup Node.js App) : voir le
   tableau ci-dessous. Les `NEXT_PUBLIC_*` sont figées au build : les poser
   AVANT de construire.
5. **Build** (terminal cPanel ou SSH, après `source` de l'environnement Node
   indiqué en haut de l'écran Setup Node.js App) :
   ```bash
   npm ci
   npm run build                      # serveur de TEST : sans VERCEL_ENV
   # production uniquement : VERCEL_ENV=production npm run build
   ```
   puis **Restart** dans Setup Node.js App.
6. **Dossier `data/`** : doit exister et rester inscriptible (journal de
   secours des leads). Il n'est pas versionné.

## Variables

| Variable | Valeur / source |
|---|---|
| `CRM_PROVIDER` | `resend` |
| `RESEND_API_KEY` | nouvelle clé créée dans le compte Resend RD Portage (connexion Google marketing@) |
| `MAIL_FROM` | `RD Portage <marketing@rdportage.com>` (domaine vérifié chez Resend) |
| `MAIL_REPLY_TO` | `marketing@rdportage.com` |
| `MAIL_FROM_INTERNE` | `Simulateur RD Portage <simulateur@rdportage.com>` |
| `MAIL_INTERNAL_TO` | `marketing@rdportage.com` (+ autres destinataires séparés par des virgules) |
| `DOSSIER_SECRET` | `openssl rand -hex 32` (nouveau, propre à RD Portage) |
| `EXPORT_TOKEN` | `openssl rand -hex 24` (nouveau) |
| `NEXT_PUBLIC_SITE_URL` | `https://test-simulateur.rdportage.com` en test, `https://simulateur.rdportage.com` en production |
| `NEXT_PUBLIC_META_PIXEL_ID` | `4019768748330072` (défaut du code) |
| `META_CAPI_ENABLED` | `false` |
| `VERCEL_ENV` | `production` **au build de production seulement** (active Pixel Meta + Plausible) |

## Bascule de production

1. Créer l'application de production (racine `~/simulateur`, URL
   `simulateur.rdportage.com`), mêmes variables avec l'URL définitive, build
   avec `VERCEL_ENV=production`.
2. Zone DNS o2switch : remplacer le CNAME `simulateur` (Vercel) par
   l'adresse de l'hébergement o2switch ; activer le certificat SSL
   (AutoSSL / Let's Encrypt).
3. Test : formulaire de rappel → contact Resend créé + notification interne
   reçue ; événement visible dans Meta (Gestionnaire d'événements) et
   Plausible.
4. Prévenir l'ancien prestataire qu'il peut couper Vercel.

**Ne jamais** supprimer les autres enregistrements de la zone DNS (MX Google,
SPF/DKIM Resend) : les e-mails en dépendent.
