# 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 ```