Skip to main content

Prestashop

Voici un tutoriel complet et corrigé pour installer PrestaShop sous Docker avec un domaine personnalisé (myshop.domain.tld), incluant toutes les étapes validées et optimisées pour éviter les erreurs SSL et les .

Docs | Github


Tutoriel : Installer PrestaShop sous Docker avec un domaine personnalisé (myshop.domain.tld)

Prérequis

  • Un serveur Debian/Ubuntu avec Docker et Portainer installés.
  • Un nom de domaine (myshop.domain.tld) pointant vers l’IP de votre serveur.
  • .

Étape 1 : Préparer le fichier docker-compose.yml

Collez ce fichier dans Portainer (Stacks > Add stack) :

version: '3.8' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: prestashop MYSQL_USER: prestashop MYSQL_PASSWORD: prestashop volumes: - db_data:/var/lib/mysql networks: - prestashop_network prestashop: image: prestashop/prestashop:latest depends_on: - db environment: DB_SERVER: db DB_USER: prestashop DB_PASSWD: prestashop DB_NAME: prestashop PS_DEV_MODE: 0 PS_INSTALL_AUTO: 0 # Désactive l'installation automatique PS_DOMAIN: myshop.domain.tld # Remplacez par votre domaine ports: - "80:80" # Port 80 pour HTTP volumes: - prestashop_data:/var/www/html networks: - prestashop_network volumes: db_data: prestashop_data: networks: prestashop_network: driver: bridge

Étape 2 : Lancer la stack et installer PrestaShop

  1. Lancez la stack dans Portainer.
  2. Attendez 2-3 minutes que les conteneurs soient prêts.
  3. Accédez à l’installation sur http://myshop.domain.tld (remplacez par votre domaine).
  4. :
    • Sélectionnez la langue.
    • Acceptez les conditions générales.
    • Remplissez les informations de la boutique (nom, email, mot de passe admin).
    • Pour la base de données, utilisez :
      • Serveur : db
      • Utilisateur : prestashop
      • Mot de passe : prestashop
      • Base de données : prestashop
  5. Lancez l’installation.
  6. À la fin, supprimez le dossier install :
    • Dans Portainer, accédez au terminal du conteneur prestashop.
    • Exécutez :
      rm -rf /var/www/html/install

Étape 3 : (si nécessaire)

Si PrestaShop force le HTTPS et que vous n’avez pas de certificat SSL valide, désactivez-le avec ces commandes SQL :

  1. Accédez au terminal du conteneur db (MySQL) via Portainer.
  2. Exécutez les requêtes (remplacez 8f35z_ par le préfixe de vos tables, trouvé via SHOW TABLES;):
    mysql -u prestashop -pprestashop prestashop -e "UPDATE 8f35z_configuration SET value = '0' WHERE name = 'PS_SSL_ENABLED';" mysql -u prestashop -pprestashop prestashop -e "UPDATE 8f35z_configuration SET value = '0' WHERE name = 'PS_SSL_ENABLED_EVERYWHERE';"
  3. Redémarrez le conteneur PrestaShop dans Portainer.

Étape 4 : Configurer le domaine et l’accès

  1. Vérifiez que votre domaine (myshop.domain.tld) pointe bien vers l’IP de votre serveur.
  2. Si vous utilisez un reverse proxy (Nginx, Traefik, Apache) :
    • Configurez-le pour rediriger myshop.domain.tld vers le conteneur PrestaShop (port 80).
    • Exemple de configuration Nginx :
      server { listen 80; server_name myshop.domain.tld; location / { proxy_pass http://[IP_DU_SERVEUR]:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
  3. Si vous voulez activer le HTTPS (recommandé pour la production) :
    • Utilisez Let’s Encrypt avec Certbot pour générer un certificat SSL.
    • Configurez votre reverse proxy pour utiliser le certificat.

Étape 5 : Accéder à l’admin et au frontoffice

  • Admin : http://myshop.domain.tld/admin[VOTRE_DOSSIER_ADMIN] (ex: admin01664892).
  • Frontoffice : http://myshop.domain.tld.

Étape 6 : Optimisations (optionnel)

  1. pour améliorer les performances :
    • Dans l’admin PrestaShop, allez dans Paramètres avancés > Performances.
    • Activez le cache et choisissez Memcached ou Redis si disponible.
  2. Sauvegarder régulièrement vos volumes Docker (db_data et prestashop_data).
  3. via l’admin ou en recréant les conteneurs avec une image plus récente.

Résumé des commandes utiles

Action Commande
Vérifier les logs PrestaShop docker logs [ID_DU_CONTENEUR_PRESTASHOP]
Accéder au terminal MySQL docker exec -it [ID_DU_CONTENEUR_DB] mysql -u prestashop -pprestashop prestashop
Vider le cache PrestaShop rm -rf /var/www/html/var/cache/* (dans le conteneur)
Redémarrer les conteneurs Via Portainer ou docker-compose restart

Problèmes courants et solutions

Problème Solution
Erreur SSL ou redirection HTTPS Désactiver le SSL via SQL (Étape 3).
Page blanche ou erreur 500 Vider le cache et redémarrer le conteneur.
Base de données inaccessible Vérifier les identifiants dans docker-compose.yml et les logs MySQL.
Dossier admin introuvable Vérifier le nom du dossier admin à la fin de l’installation.

Conclusion

Vous avez maintenant une boutique PrestaShop fonctionnelle, accessible via http://myshop.domain.tld, avec :

  • Une installation simple et automatisée via Docker.
  • Un domaine personnalisé (myshop.domain.tld).
  • Une désactivation du forçage SSL si nécessaire.
  • Une interface admin complète pour gérer vos produits.

Prochaines étapes :

  • .
  • Ajouter des produits et catégories.
  • .

Besoin d’aide supplémentaire ? Si vous rencontrez un problème ou souhaitez ajouter une fonctionnalité (comme un ), dites-le-moi ! Je peux vous guider pour chaque étape. 😊