# Export pour le serveur (Budget.foutech-solutions.fr)

Ce fichier décrit exactement quoi mettre dans ton export (ZIP ou envoi FTP) pour déployer sur le serveur, sans rien oublier et sans envoyer l’inutile.

---

## 1. Contenu de l’export (ce qui doit être sur le serveur)

### À la racine du dossier d’export

- **`package.json`** (celui à la racine du projet caplogg)

### Dossier `backend/`

- **`package.json`** (obligatoire — avec `"type": "module"` et les dépendances)
- **`server.js`**
- **`.env`** (variables d’environnement production ; ne pas commiter en git)
- **`.env.example`** (optionnel)
- Dossiers : **`data/`**, **`routes/`**, **`lib/`**, **`middleware/`**, **`services/`**, **`websocket/`**, **`scripts/`**, **`supabase/`**

À **ne pas** inclure dans l’export :

- `backend/node_modules` (on les recrée sur le serveur avec `npm install --production`)
- Fichiers ou dossiers bizarres (`node_modules.zip`, `caplogg@`, etc.)

### Dossier `frontend/`

- Uniquement **`frontend/dist/`** et tout son contenu :
  - `index.html`
  - `assets/` (JS, CSS, images)
  - `sw.js`, `registerSW.js`, `workbox-*.js`
  - `manifest.webmanifest`, `guide-character.png`, etc.

À **ne pas** inclure :

- `frontend/src/`, `frontend/package.json`, `frontend/vite.config.js`, etc.

---

## 2. Arborescence de l’export

```
Budget.foutech-solutions.fr/   (ou le nom de ton dossier app)
├── package.json
├── backend/
│   ├── package.json
│   ├── server.js
│   ├── .env
│   ├── .env.example
│   ├── data/
│   ├── routes/
│   ├── lib/
│   ├── middleware/
│   ├── services/
│   ├── websocket/
│   ├── scripts/
│   └── supabase/
└── frontend/
    └── dist/
        ├── index.html
        ├── assets/
        ├── sw.js
        └── ...
```

---

## 3. Étapes en local avant d’exporter

1. **Build du front** (à la racine du projet caplogg) :
   ```bash
   npm run build
   ```
   Vérifier que `frontend/dist/` contient bien `index.html` et `assets/`.

2. **Vérifier** que `backend/package.json` existe (avec `"type": "module"` et les dépendances express, dotenv, etc.).

3. **Créer le dossier d’export** (ex. `Budget.foutech-solutions.fr`) et y copier :
   - le `package.json` de la racine du projet ;
   - tout le dossier `backend/` **sans** `node_modules` ;
   - le dossier `frontend/dist/` dans `frontend/dist/` (pas tout le dossier `frontend/`).

4. **Zipper** ce dossier (ou l’envoyer en FTP/SFTP).

---

## 4. Sur le serveur après upload

1. Décompresser / placer les fichiers pour que la structure soit identique (racine avec `package.json`, `backend/`, `frontend/dist/`).

2. **cPanel – Setup Node.js App**  
   - Node.js version : **20.x**  
   - Application root : chemin vers ce dossier (ex. `Budget.foutech-solutions.fr`)  
   - Application startup file : **`backend/server.js`**  
   - Sauvegarder (Save / Update).

3. **En SSH** (avec le venv Node 20 activé — utiliser la commande affichée dans cPanel « Enter to the virtual environment ») :
   ```bash
   cd /home/lawe1618/Budget.foutech-solutions.fr/backend
   npm install --production
   ```

4. Dans cPanel : **RESTART** (ou STOP puis START) l’application.

5. Tester :  
   - https://budget.foutech-solutions.fr/  
   - https://budget.foutech-solutions.fr/api/health → `{"ok":true}`

---

## 5. Rappels

- Ne **jamais** lancer `npm run build` sur le serveur (le front est déjà buildé en local).
- Ne **jamais** lancer `npm run dev` sur le serveur (uniquement `backend/server.js` en production).
- L’app doit tourner avec **Node 20** ; si les logs montrent encore Node 10, changer la version dans cPanel ou recréer l’application en Node 20.
