# Guide de mise à jour sur VPS ## Problème résolu dans cette version Cette mise à jour corrige le problème de redirection vers `portal.manus.im` après une connexion locale réussie. **Cause** : Incompatibilité entre les bibliothèques JWT utilisées pour créer et vérifier les tokens de session. **Solution** : Utilisation de la même méthode de signature (`sdk.createSessionToken()`) que le système OAuth. --- ## Procédure de mise à jour ### 1. Sauvegarder la configuration actuelle ```bash # Sauvegarder le fichier .env cp /var/www/formation-manager-itinova/.env /var/www/formation-manager-itinova/.env.backup # Sauvegarder la base de données (optionnel mais recommandé) mysqldump -u votre_utilisateur -p formation_manager > backup_$(date +%Y%m%d_%H%M%S).sql ``` ### 2. Arrêter le service ```bash sudo systemctl stop formation-manager ``` ### 3. Extraire la nouvelle version ```bash # Aller dans le répertoire parent cd /var/www # Sauvegarder l'ancienne version mv formation-manager-itinova formation-manager-itinova.old # Extraire la nouvelle archive tar -xzf formation-manager-itinova-final-fixed.tar.gz # Restaurer le fichier .env cp formation-manager-itinova.old/.env formation-manager-itinova/.env # Définir les bonnes permissions chown -R www-data:www-data formation-manager-itinova ``` ### 4. Installer les dépendances ```bash cd formation-manager-itinova pnpm install ``` ### 5. Appliquer les migrations de base de données ```bash pnpm db:push ``` ### 6. Compiler l'application ```bash pnpm build ``` ### 7. Redémarrer le service ```bash sudo systemctl start formation-manager sudo systemctl status formation-manager ``` ### 8. Vérifier les logs ```bash # Voir les logs en temps réel sudo journalctl -u formation-manager -f # Voir les dernières lignes sudo journalctl -u formation-manager -n 50 ``` --- ## Vérification que la mise à jour a fonctionné ### Test de connexion locale 1. Ouvrir votre navigateur et aller sur votre site 2. Cliquer sur "Connexion Locale" 3. Entrer : - **Identifiant** : adminServFormation - **Mot de passe** : Itinova69! 4. Cliquer sur "Se connecter" **Résultat attendu** : Vous devez être redirigé vers le tableau de bord (`/admin`) et rester connecté, sans être redirigé vers `portal.manus.im`. ### Vérifier le cookie de session Ouvrir les outils de développement du navigateur (F12) : 1. Aller dans l'onglet "Application" (Chrome) ou "Stockage" (Firefox) 2. Regarder les cookies 3. Vous devez voir un cookie nommé `manus-session` avec une valeur JWT ### Vérifier que l'API fonctionne Ouvrir la console du navigateur (F12) et taper : ```javascript fetch('/api/trpc/auth.me', { credentials: 'include' }).then(r => r.json()).then(console.log) ``` **Résultat attendu** : Vous devez voir vos informations utilisateur, pas une erreur d'authentification. --- ## En cas de problème ### Le service ne démarre pas ```bash # Vérifier les erreurs sudo journalctl -u formation-manager -n 100 # Vérifier que les dépendances sont installées cd /var/www/formation-manager-itinova pnpm install ``` ### Toujours redirigé vers portal.manus.im 1. Vérifier que vous avez bien extrait la **nouvelle** archive 2. Vérifier que le service a bien redémarré : ```bash sudo systemctl restart formation-manager ``` 3. Vider le cache du navigateur et supprimer les cookies 4. Vérifier les logs du serveur : ```bash sudo journalctl -u formation-manager -f ``` ### L'utilisateur admin n'existe pas ```bash cd /var/www/formation-manager-itinova ./create-admin.sh ``` --- ## Rollback (retour à l'ancienne version) Si la mise à jour pose problème : ```bash # Arrêter le service sudo systemctl stop formation-manager # Restaurer l'ancienne version cd /var/www rm -rf formation-manager-itinova mv formation-manager-itinova.old formation-manager-itinova # Redémarrer sudo systemctl start formation-manager ``` --- ## Support Si vous rencontrez des problèmes après avoir suivi ce guide : 1. Vérifiez les logs : `sudo journalctl -u formation-manager -n 100` 2. Exécutez le script de diagnostic : `./diagnose.sh` 3. Exécutez le script de vérification : `./verify-login.sh` Ces scripts vous donneront des informations détaillées sur la configuration et les problèmes éventuels.