docs: notes de session pour reprise du debug PrestaShop

This commit is contained in:
EduBox Dev
2026-06-17 21:58:53 +00:00
parent 2b31ec7258
commit 20baf3878f
+86
View File
@@ -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 (`<id>.<domain>`).
## ⚠️ 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://<id>.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
```