CI/CD & E-commerce : Déployer un PrestaShop Headless en automatique avec GitHub Actions
prestashop

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é.

Publié le 16 mars 2026 7 min de lecture Alexandre Carette

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 Headlessdéveloppement.

ProblématiqueCause principaleImpact métier
Déploiements manuels en productionAbsence de workflow structuréRisque de panne immédiate, perte directe de chiffre d'affaires
Pas d'environnement de préproductionCoût perçu comme trop élevéImpossible de tester, régressions introduites en prod
Rollback inexistant ou laborieuxPas de versioning des images DockerHeures de correction sous pression maximale, client impacté
Secrets exposés dans le dépôt GitMauvaises pratiques de gestion des variablesFailles de sécurité, accès non autorisés à la base de données
Downtime lors des mises à jour conteneursRechargement brutal sans health checkExpé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_prod et prestashop_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 :

  1. La requête arrive sur le port 443, sécurisée automatiquement via Let's Encrypt et Certbot
  2. Nginx identifie le domaine : alexandrecarette.fr route vers la production, preprod.alexandrecarette.fr vers la préproduction
  3. La requête est forwardée vers le conteneur Nuxt correspondant via le réseau Docker approprié
  4. Nuxt appelle l'API PrestaShop du même réseau en utilisant la variable NUXT_PUBLIC_API_BASE
  5. 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

  1. Job lint & build : vérification du code Nuxt 3 (ESLint, TypeScript check), validation de la syntaxe Docker Compose — étape bloquante en cas d'erreur
  2. 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
  3. Job deploy : connexion SSH au VPS, git pull sur la branche cible, rebuild des images Docker modifiées, redémarrage gracieux via docker 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

SolutionComplexitéGain estimé
GitHub Actions avec déploiement SSHMoyenneDéploiements 10× plus rapides, zéro erreur humaine
Réseaux Docker isolés prod/preprodMoyenneTests sécurisés, rollback en moins de 2 minutes
Nginx reverse proxy par domaine + Let's EncryptFaibleSSL automatique, routage intelligent sans surcoût d'infrastructure
GitHub Secrets pour les variables sensiblesFaibleSécurité renforcée, conformité RGPD facilitée
Stratégie de branches develop/main avec PR obligatoireFaibleValidation 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

Questions fréquentes

Tout ce que vous devez savoir sur ce sujet.

Un projet PrestaShop ?

Discutons-en directement.

★★★★★

193 projets livrés

Gratuit & sans engagement — réponse sous 24h

Alexandre Carette

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.