docs: notes de session pour reprise du debug PrestaShop
This commit is contained in:
@@ -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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user