# Déploiement cPanel — CoE Digital Platform 1.1.0

Ce paquet est préparé pour une application cPanel Node.js unique, installée dans `/home/iynwhtqv/mcp-coecbrn`.

## Paramètres de l’application

```text
Node.js : 22.18.0
Mode : Production
Application root : mcp-coecbrn
Application URL : https://mcp.coecbrn-rdc.cd
Startup file : app.js
```

## 1. Sauvegarder la version actuelle

Avant toute extraction, créez depuis le gestionnaire de fichiers cPanel une archive du dossier `/home/iynwhtqv/mcp-coecbrn`. Conservez séparément les variables d’environnement actuellement configurées dans **Setup Node.js App**. Ne placez jamais la vraie clé API dans une archive publique.

## 2. Téléverser et extraire le ZIP

1. Ouvrez **File Manager** dans cPanel.
2. Accédez à `/home/iynwhtqv`.
3. Téléversez `coe-digital-platform-cpanel-v1.1.0.zip`.
4. Ouvrez ou créez le dossier `/home/iynwhtqv/mcp-coecbrn`.
5. Extrayez le contenu du ZIP directement dans ce dossier. L’archive ne contient aucun dossier parent supplémentaire.
6. Remplacez les fichiers applicatifs de l’ancienne version lorsque cPanel le demande, mais ne remplacez pas un éventuel `.env` local contenant la configuration réelle.

Après extraction, ce chemin doit exister exactement :

```text
/home/iynwhtqv/mcp-coecbrn/app.js
```

Si `app.js` se trouve dans un sous-dossier, déplacez le contenu de ce sous-dossier vers `/home/iynwhtqv/mcp-coecbrn` avant de poursuivre.

## 3. Configurer les variables d’environnement

Dans **Setup Node.js App**, ouvrez l’application puis définissez :

```env
NODE_ENV=production
PORT=3000
MCP_API_KEY=VOTRE_SECRET_ALEATOIRE
ALLOWED_ORIGINS=https://coecbrn-rdc.cd,https://www.coecbrn-rdc.cd
LOG_LEVEL=info
SERVICE_NAME=CoE Digital Platform
SERVICE_SHORT_NAME=CoE Digital
SERVICE_VERSION=1.1.0
MCP_SERVER_NAME=CoE Digital MCP Server
ADMIN_API_NAME=CoE Digital Administration API
DASHBOARD_NAME=CoE Digital Control Center
ORGANIZATION_NAME=CoE-CBRN/RDC
PUBLIC_SITE_URL=https://coecbrn-rdc.cd
MCP_PUBLIC_URL=https://mcp.coecbrn-rdc.cd
TRUST_PROXY=true
```

Passenger fournit généralement le port au processus. La valeur `3000` reste le repli local prévu par l’application.

## 4. Générer une clé API forte

Dans le terminal cPanel, générez au minimum 32 octets aléatoires :

```bash
openssl rand -hex 32
```

Copiez la valeur obtenue dans `MCP_API_KEY` via **Setup Node.js App**. Ne l’ajoutez ni à `.env.example`, ni au code, ni aux journaux, ni à une commande curl conservée dans l’historique partagé.

## 5. Installer les dépendances

Activez l’environnement Node.js indiqué par cPanel, puis exécutez :

```bash
cd ~/mcp-coecbrn
npm install --omit=dev
```

Vérifiez que npm termine sans erreur. Le dossier `node_modules` est volontairement absent du ZIP et doit être créé sur le serveur avec cette commande.

## 6. Redémarrer l’application

Revenez dans **Setup Node.js App**, vérifiez les paramètres puis cliquez sur **Restart Application**. Consultez les journaux Passenger/Pino si l’application ne démarre pas.

## 7. Tester les routes publiques

```bash
curl -i https://mcp.coecbrn-rdc.cd/health
curl -i https://mcp.coecbrn-rdc.cd/platform
curl -i https://mcp.coecbrn-rdc.cd/platform/modules
curl -i https://mcp.coecbrn-rdc.cd/platform/capabilities
curl -i https://mcp.coecbrn-rdc.cd/dashboard
```

Les réponses doivent indiquer la version `1.1.0` et le mode `simulation`. La dernière commande doit retourner une page HTML.

## 8. Tester une route protégée

Utilisez la clé configurée sans l’écrire dans le projet :

```bash
curl -i https://mcp.coecbrn-rdc.cd/admin/platform-status \
  -H "Authorization: Bearer VOTRE_CLE_API"
```

La même route sans en-tête doit retourner HTTP `401`. La clé peut aussi être transmise avec `X-API-Key` :

```bash
curl -i https://mcp.coecbrn-rdc.cd/admin/status \
  -H "X-API-Key: VOTRE_CLE_API"
```

## 9. Retour à la version précédente

En cas d’échec :

1. Conservez les journaux utiles au diagnostic sans les rendre publics.
2. Restaurez dans `/home/iynwhtqv/mcp-coecbrn` l’archive créée avant le déploiement.
3. Restaurez le `package-lock.json` de la version précédente.
4. Restaurez ses variables d’environnement si elles différaient, sans changer inutilement la clé API.
5. Exécutez de nouveau :

   ```bash
   cd ~/mcp-coecbrn
   npm install --omit=dev
   ```

6. Cliquez sur **Restart Application**.
7. Vérifiez `/health`, la version retournée par `/`, l’authentification et la connexion MCP.

Ne restaurez et ne modifiez aucun fichier du site public pendant cette procédure.
