
CI/CD & E-commerce : Déployer un PrestaShop Headless en automatique avec GitHub Actions
CI/CD e-commerce avec GitHub Actions : déployez un PrestaShop Headless & Nuxt 3 avec deux environnements Docker isolés, zéro downtime et rollback instantané.
Après 193 projets PrestaShop livrés, j'ai une confession à faire : pendant des années, je déployais directement en production. Un accès SSH, un fichier modifié, et on croisait les doigts. Cette pratique — encore courante chez les freelances et les petites agences — est une bombe à retardement pour tout site e-commerce sérieux. Mettre en place un pipeline CI/CD e-commerce avec GitHub Actions a transformé radicalement mon workflow sur mon architecture PrestaShop Headless & Nuxt 3 : déploiements automatisés, environnement de préproduction isolé, rollback en deux minutes.
Les chiffres parlent d'eux-mêmes : selon le Accelerate State of DevOps Report 2023 de DORA, les équipes pratiquant le déploiement continu restaurent un service défaillant 6 fois plus vite, avec un taux d'échecs de changements 9 fois inférieur. Dans cet article, je détaille l'architecture complète que j'ai construite sur mon VPS Ubuntu 24.04 : deux environnements Docker étanches, un reverse proxy Nginx et un pipeline GitHub Actions entièrement automatisé.
Les problématiques courantes du déploiement e-commerce
Cet article fait partie de notre dossier PrestaShop Headless › développement.
| Problématique | Cause principale | Impact métier |
|---|---|---|
| Déploiements manuels en production | Absence de workflow structuré | Risque de panne immédiate, perte directe de chiffre d'affaires |
| Pas d'environnement de préproduction | Coût perçu comme trop élevé | Impossible de tester, régressions introduites en prod |
| Rollback inexistant ou laborieux | Pas de versioning des images Docker | Heures de correction sous pression maximale, client impacté |
| Secrets exposés dans le dépôt Git | Mauvaises pratiques de gestion des variables | Failles de sécurité, accès non autorisés à la base de données |
| Downtime lors des mises à jour conteneurs | Rechargement brutal sans health check | Expérience client dégradée, pénalité SEO potentielle |
L'architecture Docker : deux environnements isolés sur un seul VPS
La contrainte était claire : un seul VPS Ubuntu 24.04, deux environnements qui ne doivent jamais interférer. La solution repose sur les réseaux Docker isolés — un mécanisme que beaucoup de développeurs PrestaShop sous-exploitent. Chaque réseau est une bulle étanche : les conteneurs d'un réseau ne peuvent pas communiquer avec ceux d'un autre réseau, sauf autorisation explicite dans le docker-compose.yml.
Dans un projet récent pour un client dans le secteur de la mode prêt-à-porter, j'ai découvert que leur équipe testait directement en production faute d'environnement dédié. Résultat : une mise à jour du thème avait cassé le tunnel de paiement un vendredi soir, entraînant plusieurs heures de downtime et une perte estimée à plusieurs milliers d'euros de commandes non encaissées. Avec une architecture double environnement, ce type d'incident appartient au passé.
Les deux réseaux Docker en détail
- ac_network (production) : regroupe ac_nuxt, ac_prestashop, ac_mariadb et ac_redis — aucun accès externe direct
- preprod_network (préproduction) : mêmes services préfixés preprod_, avec leur propre instance MariaDB
- Nginx est le seul conteneur connecté aux deux réseaux simultanément, jouant le rôle de reverse proxy intelligent
- Deux bases de données strictement séparées :
prestashop_prodetprestashop_preprod— contamination impossible - Les variables d'environnement de chaque service pointent vers les URLs internes du bon réseau Docker
Pour approfondir cette architecture, retrouvez mon article complet sur la mise en place d'une architecture Docker pour PrestaShop Headless.
Nginx : routage par domaine vers le bon environnement
Nginx orchestre le routage en lisant le server_name de chaque requête entrante. Voici les cinq étapes du flux complet :
- La requête arrive sur le port 443, sécurisée automatiquement via Let's Encrypt et Certbot
- Nginx identifie le domaine :
alexandrecarette.frroute vers la production,preprod.alexandrecarette.frvers la préproduction - La requête est forwardée vers le conteneur Nuxt correspondant via le réseau Docker approprié
- Nuxt appelle l'API PrestaShop du même réseau en utilisant la variable
NUXT_PUBLIC_API_BASE - La réponse remonte au client sans jamais traverser l'autre réseau, garantissant l'isolation totale
GitHub Actions : construire le pipeline CI/CD e-commerce pas à pas
GitHub Actions est aujourd'hui la solution de déploiement automatisé la plus accessible pour un développeur indépendant : gratuite pour les dépôts publics, compétitive sur les privés avec 2 000 minutes de compute offertes chaque mois. Selon la documentation officielle de GitHub Actions, un workflow est composé de triggers (déclencheurs), de jobs (tâches) et de steps (étapes) — une logique simple mais extrêmement puissante pour orchestrer des déploiements complexes.
J'ai structuré mon pipeline autour de deux branches Git aux comportements distincts :
- Branche
develop→ déploiement automatique sur la préproduction à chaque push, sans validation manuelle - Branche
main→ déploiement en production uniquement après merge d'une Pull Request validée - Les secrets sensibles (SSH_PRIVATE_KEY, VPS_HOST, DB_PASSWORD) sont stockés dans GitHub Secrets — jamais dans le code versionné
- Le runner GitHub se connecte au VPS via SSH et exécute les commandes Docker Compose à distance
Les trois jobs du pipeline de déploiement
- Job lint & build : vérification du code Nuxt 3 (ESLint, TypeScript check), validation de la syntaxe Docker Compose — étape bloquante en cas d'erreur
- Job test : exécution des tests unitaires frontend et des tests d'intégration API (appels aux WebServices PrestaShop) — tout échec interrompt le pipeline avant déploiement
- Job deploy : connexion SSH au VPS,
git pullsur la branche cible, rebuild des images Docker modifiées, redémarrage gracieux viadocker compose up -d --build
Selon DORA (Accelerate State of DevOps 2023), les équipes elite déploient 973 fois plus fréquemment que les équipes sans automatisation, avec un taux d'échecs des changements de seulement 5% contre 46% pour les équipes à faibles performances. Ces chiffres illustrent concrètement le retour sur investissement d'un pipeline bien construit, même pour un développeur solo.
Gestion des secrets : les trois niveaux de sécurité
La gestion des secrets est le talon d'Achille de nombreux pipelines artisanaux. Dans mon architecture PrestaShop Headless, les variables sensibles sont organisées à trois niveaux distincts et complémentaires :
- GitHub Secrets : SSH_PRIVATE_KEY, VPS_HOST, VPS_USER — utilisés uniquement dans les steps de déploiement, masqués dans les logs
- Fichier .env sur le VPS : non versionné, créé manuellement lors du setup initial, contient les mots de passe MariaDB, Redis et les clés API
- runtimeConfig Nuxt 3 : les clés API PrestaShop sont injectées au runtime côté serveur via
useRuntimeConfig(), jamais exposées dans le bundle client JavaScript
Pour une implémentation complète de la sécurisation des appels API dans une architecture headless, consultez mon article sur l'intégration sécurisée des WebServices PrestaShop avec Nuxt 3.
Les solutions pour automatiser vos déploiements PrestaShop
| Solution | Complexité | Gain estimé |
|---|---|---|
| GitHub Actions avec déploiement SSH | Moyenne | Déploiements 10× plus rapides, zéro erreur humaine |
| Réseaux Docker isolés prod/preprod | Moyenne | Tests sécurisés, rollback en moins de 2 minutes |
| Nginx reverse proxy par domaine + Let's Encrypt | Faible | SSL automatique, routage intelligent sans surcoût d'infrastructure |
| GitHub Secrets pour les variables sensibles | Faible | Sécurité renforcée, conformité RGPD facilitée |
| Stratégie de branches develop/main avec PR obligatoire | Faible | Validation systématique avant chaque passage en production |
"GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline. You can create workflows that build and test every pull request to your repository, or deploy merged pull requests to production."
— GitHub Docs, Understanding GitHub Actions (2024)
Conclusion : le CI/CD, l'investissement qui se rentabilise dès le premier incident évité
Mettre en place un pipeline CI/CD e-commerce avec GitHub Actions sur une architecture PrestaShop Headless & Nuxt 3 n'est plus réservé aux grandes équipes techniques. Avec les bons outils — Docker, Nginx, GitHub Actions, une stratégie de branches claire — tout développeur indépendant peut déployer avec la même rigueur qu'une équipe de 50 personnes. Les bénéfices sont immédiats en 2026 : déploiements automatisés à chaque commit, préproduction parfaitement isolée, rollback en quelques minutes et secrets parfaitement sécurisés. Et surtout, la tranquillité d'esprit qui permet enfin de se concentrer sur la valeur métier livrée au client, plutôt que sur la gestion du risque opérationnel.
Vous souhaitez mettre en place un pipeline de déploiement automatisé pour votre boutique PrestaShop ? Discutons de votre projet : contact@alexandrecarette.fr
Sources et références
Articles dans le même univers
- PrestaShop Headless ou Shopify ? Pourquoi j'ai choisi de bâtir mon propre Hub
- Comment j'ai construit une usine à contenu SEO avec PrestaShop, Claude IA et Python
- Coulisses : comment j'ai propulsé mon Hub Pro avec PrestaShop Headless et Nuxt 3
- Docker PrestaShop VPS : déployer en production sans stress
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop freelance avec 10 ans d'expérience et 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop, des pipelines DevOps Docker/CI-CD et des outils d'automatisation IA pour mes clients e-commerce.