From 20baf3878fcd87dbd3817eac60442ad6e45c06ec Mon Sep 17 00:00:00 2001 From: EduBox Dev Date: Wed, 17 Jun 2026 21:58:53 +0000 Subject: [PATCH] docs: notes de session pour reprise du debug PrestaShop --- SESSION_NOTES.md | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 SESSION_NOTES.md diff --git a/SESSION_NOTES.md b/SESSION_NOTES.md new file mode 100644 index 0000000..1fd01dc --- /dev/null +++ b/SESSION_NOTES.md @@ -0,0 +1,86 @@ +# Notes de session EduBox - 17 juin 2026 + +## ✅ Ce qui fonctionne + +- Agent EduBox v0.2.7 déployé avec binaires Linux/Mac/Windows. +- Connexion WordPress via URL publique fonctionne (wp-admin inclus). +- Proxy Next.js gère correctement les POST (duplex: half), les cookies, les headers X-Forwarded. +- Certificats TLS on-demand Caddy fonctionnent pour les sous-domaines d'instances. +- Reset d'instance corrige : le serveur envoie maintenant le `ComposeConfig` complet. +- `PUBLIC_DOMAIN` inclut le sous-domaine de l'instance (`.`). + +## ⚠️ Problème en cours : PrestaShop + +L'installation automatique de PrestaShop 8.1 se termine avec succès, mais l'accès via l'URL publique ou localhost provoque des redirections incorrectes : + +- `curl -I http://localhost:8080` retourne `302 Location: http://cmqiiso9g0001mfap4wv7a690.alfrednobel.edudeploy.com/` +- `curl -I https://cmqiiso9g0001mfap4wv7a690.alfrednobel.edudeploy.com/` retourne `302` vers la même URL (boucle infinie). +- `curl -I https://cmqiiso9g0001mfap4wv7a690.alfrednobel.edudeploy.com/index.php` retourne `200 OK`. + +### Hypothèses / pistes + +1. PrestaShop stocke le domaine shop en base (`ps_configuration` : `PS_SHOP_DOMAIN`, `PS_SHOP_DOMAIN_SSL`). + - Avec `PS_ENABLE_SSL=1`, il est configuré avec l'URL publique en HTTPS. + - Quand on accède via `localhost`, il redirige vers l'URL publique. +2. L'accès à `/` redirige vers l'URL canonique, ce qui crée une boucle via le proxy. +3. Il faudrait un équivalent PrestaShop du mu-plugin WordPress pour forcer le domaine à la volée selon `HTTP_HOST`. + +### Template PrestaShop actuel (seed.ts) + +```yaml +DB_SERVER: db +DB_PORT: 3306 +DB_NAME: prestashop +DB_USER: prestashop +DB_PASSWD: prestashop +DB_PREFIX: ps_ +PS_DOMAIN: {PUBLIC_DOMAIN} +PS_SHOP_NAME: PrestaShop 8.1 vierge +PS_INSTALL_AUTO: "1" +PS_INSTALL_DB: "0" +PS_ENABLE_SSL: "1" +PS_LANGUAGE: fr +PS_COUNTRY: fr +ADMIN_MAIL: admin@edubox.local +ADMIN_PASSWD: EduboxPrestashop2024! +PS_FOLDER_ADMIN: admin +PS_FOLDER_INSTALL: install +PS_DEV_MODE: "1" +``` + +## 🚀 Prochaines étapes suggérées + +1. **Option rapide** : accepter que l'accès étudiant se fasse via l'URL publique. Vérifier que `https://.alfrednobel.edudeploy.com/index.php` fonctionne et que la boutique est utilisable. +2. **Option propre** : développer un module/override PrestaShop qui : + - Détecte `HTTP_HOST` / `X-Forwarded-Host`. + - Met à jour `PS_SHOP_DOMAIN` et `PS_SHOP_DOMAIN_SSL` dynamiquement. + - Permet l'accès via localhost ET via l'URL publique. +3. **Alternative** : installer PrestaShop avec `PS_DOMAIN=localhost:8080` et laisser le proxy réécrire les URLs (mais c'est complexe). + +## 📁 Instance de test actuelle + +- ID : `cmqiiso9g0001mfap4wv7a690` +- Type : PrestaShop 8.1 vierge +- Port : 8080 +- Nœud : OMEGA-GAMER (PC étudiant de Yacine) + +## 📝 Commits récents + +- `5c4c9f3` fix(server/api): envoi du ComposeConfig lors d'un reset d'instance +- `2d57857` fix(server/api): PUBLIC_DOMAIN inclut le sous-domaine de l'instance +- `2b31ec7` fix(seed): PrestaShop installé avec SSL et sans dynamic domain + +## 🔧 Commandes utiles pour reprendre + +Sur le serveur : +```bash +cd /opt/edubox +docker logs edubox-server --tail 50 +docker exec edubox-server sh -c "cd /app && npx prisma db seed" +``` + +Sur le PC étudiant (PowerShell) : +```powershell +podman ps --format "table {{.Names}}`t{{.Status}}`t{{.Ports}}" +podman logs -f cmqiiso9g0001mfap4wv7a690-app-1 +```