# Guide d'Installation MindFinTech sur cPanel

## Vue d'ensemble

Ce guide t'explique comment déployer le pipeline newsletter-to-podcast sur ton hébergement o2switch/cPanel pour qu'il tourne automatiquement.

**Résultat final :**
- Chaque jour à 7h, le script récupère les nouvelles newsletters
- Génère automatiquement les épisodes audio
- Met à jour le flux RSS
- Spotify/Apple Podcasts récupèrent les nouveaux épisodes automatiquement

---

## Prérequis

Avant de commencer, assure-toi d'avoir :

- [ ] Un compte o2switch avec accès cPanel
- [ ] Tes clés API :
  - ElevenLabs : https://elevenlabs.io/app/settings/api-keys
  - DeepSeek : https://platform.deepseek.com/api_keys
  - Anthropic : https://console.anthropic.com/settings/keys
- [ ] Les fichiers `credentials.json` et `token.json` (Gmail OAuth)

---

## Étape 1 : Préparer les fichiers

### 1.1 Structure du ZIP

Le ZIP contient 2 dossiers :

```
mindfintech_deploy/
├── mindfintech/          ← Code du pipeline (va dans /home/ton_user/)
│   ├── main.py
│   ├── config_cpanel.py
│   ├── .env.cpanel
│   ├── setup_cpanel.sh
│   ├── requirements.txt
│   └── modules/
│       ├── __init__.py
│       ├── gmail_filter.py
│       ├── content_extractor.py
│       ├── deepseek.py
│       ├── text_to_speech.py
│       ├── rss_generator.py
│       └── youtube_uploader.py
│
└── public/               ← Fichiers publics (va dans /home/ton_user/public_html/podcast/)
    ├── cover.jpg
    ├── feed.xml
    └── episodes/
        └── *.mp3
```

### 1.2 Ajouter tes fichiers credentials

**IMPORTANT** : Avant d'uploader, ajoute dans le dossier `mindfintech/` :
- `credentials.json` (OAuth Gmail)
- `token.json` (Token Gmail)

Ces fichiers sont sur ton Mac dans `/Users/cerebro/Downloads/MindFinTech/`

---

## Étape 2 : Upload sur cPanel

### 2.1 Connexion à cPanel

1. Va sur https://ton_domaine:2083 ou via o2switch
2. Connecte-toi avec tes identifiants

### 2.2 Upload du dossier mindfintech

1. Dans cPanel → **Gestionnaire de fichiers**
2. Va dans `/home/ton_user/` (racine de ton compte)
3. Clique **Charger** (Upload)
4. Upload le dossier `mindfintech/` complet
5. Résultat : `/home/ton_user/mindfintech/`

### 2.3 Upload du dossier public

1. Dans le gestionnaire de fichiers
2. Va dans `/home/ton_user/public_html/`
3. Crée un nouveau dossier : `podcast`
4. Entre dans `podcast/`
5. Upload tout le contenu du dossier `public/` :
   - `cover.jpg`
   - `feed.xml`
   - Dossier `episodes/` avec les MP3

---

## Étape 3 : Configuration

### 3.1 Lancer le script d'installation

1. Dans cPanel → **Terminal** (ou connecte-toi en SSH)
2. Exécute :

```bash
cd /home/ton_user/mindfintech
bash setup_cpanel.sh
```

Ce script va :
- Créer les dossiers nécessaires
- Installer les dépendances Python
- Configurer les chemins automatiquement

### 3.2 Configurer les clés API

1. Édite le fichier `.env` :

```bash
nano /home/ton_user/mindfintech/.env
```

2. Remplace les valeurs par tes vraies clés :

```env
CPANEL_USER=ton_vrai_user
ELEVENLABS_API_KEY=sk_ta_vraie_cle
DEEPSEEK_API_KEY=sk-ta_vraie_cle
ANTHROPIC_API_KEY=sk-ant-ta_vraie_cle
```

3. Sauvegarde : `Ctrl+O`, puis `Ctrl+X`

### 3.3 Vérifier les credentials Gmail

Assure-toi que ces fichiers sont présents :
- `/home/ton_user/mindfintech/credentials.json`
- `/home/ton_user/mindfintech/token.json`

---

## Étape 4 : Tester le pipeline

### 4.1 Test manuel

Dans le terminal cPanel :

```bash
cd /home/ton_user/mindfintech
python3 main.py
```

Tu devrais voir :
```
============================================================
PIPELINE NEWSLETTER-TO-PODCAST
============================================================
1. Connexion à Gmail...
✓ Connecté à Gmail
...
```

### 4.2 Vérifier les fichiers générés

- Audio : `/home/ton_user/mindfintech/output/audio/`
- RSS mis à jour : `/home/ton_user/public_html/podcast/feed.xml`

### 4.3 Tester les URLs

Dans ton navigateur :
- Feed RSS : `https://data-workers.com/podcast/feed.xml`
- Cover : `https://data-workers.com/podcast/cover.jpg`
- Un épisode : `https://data-workers.com/podcast/episodes/[nom_fichier].mp3`

---

## Étape 5 : Configurer le Cron Job

### 5.1 Accéder aux tâches Cron

1. Dans cPanel → **Tâches Cron** (ou "Cron Jobs")

### 5.2 Créer la tâche

**Paramètres :**
- Minutes : `0`
- Heures : `7`
- Jours : `*`
- Mois : `*`
- Jour de la semaine : `*`

Cela signifie : **tous les jours à 7h00**

**Commande :**
```bash
cd /home/ton_user/mindfintech && /usr/bin/python3 main.py >> /home/ton_user/mindfintech/cron.log 2>&1
```

⚠️ **IMPORTANT** : Remplace `ton_user` par ton vrai nom d'utilisateur cPanel !

### 5.3 Vérifier les logs

Après la première exécution automatique, vérifie :

```bash
cat /home/ton_user/mindfintech/cron.log
```

---

## Étape 6 : Soumettre à Spotify

### 6.1 Créer un compte Spotify for Podcasters

1. Va sur https://podcasters.spotify.com
2. Clique **"Get Started"**
3. Connecte-toi avec ton compte Spotify (ou crée-en un)

### 6.2 Ajouter ton podcast

1. Clique **"Add your podcast"**
2. Entre l'URL de ton flux RSS :
   ```
   https://data-workers.com/podcast/feed.xml
   ```
3. Clique **"Next"**

### 6.3 Vérifier les informations

Spotify va récupérer :
- Titre : "Chronique Finance & Tech"
- Description
- Image de couverture
- Liste des épisodes

Vérifie que tout est correct.

### 6.4 Confirmer la propriété

Spotify peut demander de vérifier que tu es le propriétaire :
- Soit par email
- Soit en ajoutant un code dans le flux RSS

### 6.5 Soumettre

Clique **"Submit"**

**Délai** : 24-48h pour que le podcast apparaisse sur Spotify

---

## Étape 7 : Soumettre à Apple Podcasts (optionnel)

### 7.1 Créer un compte Apple Podcasters

1. Va sur https://podcastsconnect.apple.com
2. Connecte-toi avec ton Apple ID

### 7.2 Ajouter ton podcast

1. Clique **"+"** puis **"New Show"**
2. Entre ton flux RSS :
   ```
   https://data-workers.com/podcast/feed.xml
   ```
3. Soumets pour review

**Délai** : 1-5 jours ouvrés pour validation

---

## Dépannage

### Le script ne s'exécute pas

Vérifie les permissions :
```bash
chmod +x /home/ton_user/mindfintech/main.py
chmod 755 /home/ton_user/mindfintech
```

### Erreur "Module not found"

Réinstalle les dépendances :
```bash
pip install --user google-auth google-auth-oauthlib google-api-python-client python-dotenv elevenlabs beautifulsoup4 html2text requests anthropic
```

### Erreur Gmail "Token expired"

Regénère le token.json sur ton Mac local, puis re-upload le fichier.

### Les épisodes n'apparaissent pas sur Spotify

1. Vérifie que le feed.xml est accessible : https://data-workers.com/podcast/feed.xml
2. Vérifie que les MP3 sont accessibles
3. Valide ton feed : https://podba.se/validate/

### Voir les logs

```bash
cat /home/ton_user/mindfintech/cron.log
```

---

## Récapitulatif

| Élément | Chemin sur cPanel |
|---------|-------------------|
| Code Python | `/home/ton_user/mindfintech/` |
| Config | `/home/ton_user/mindfintech/.env` |
| Credentials Gmail | `/home/ton_user/mindfintech/credentials.json` |
| Token Gmail | `/home/ton_user/mindfintech/token.json` |
| Fichiers publics | `/home/ton_user/public_html/podcast/` |
| Cover image | `/home/ton_user/public_html/podcast/cover.jpg` |
| Feed RSS | `/home/ton_user/public_html/podcast/feed.xml` |
| Épisodes MP3 | `/home/ton_user/public_html/podcast/episodes/` |
| Logs | `/home/ton_user/mindfintech/cron.log` |

---

## Support

En cas de problème :
1. Vérifie les logs : `cron.log`
2. Teste manuellement : `python3 main.py`
3. Vérifie les clés API dans `.env`
4. Vérifie que les fichiers Gmail sont présents

Bonne chance !
