Une infrastructure WordPress de Production, open-source et sur mesure.
FlexPress Core est un socle d'infrastructure WordPress open-source, conteneurisé avec Docker et optimisé pour la production. Il fournit un environnement de développement et de déploiement robuste, sécurisé et performant, tout en offrant un contrôle total et une modularité maximale.
Ce projet se situe entre les hébergeurs gérés (souvent des "boîtes noires" rigides) et une configuration manuelle complexe. FlexPress Core offre la puissance d'une infrastructure sur mesure avec la simplicité de l'automatisation.
- ✨ Fonctionnalités
- 🛠️ Stack Technique
- 🚀 Démarrage Rapide
- ⚙️ Utilisation
- 📁 Structure du Projet
- 🤖 CI/CD
- 🤝 Contribution
- 📜 Licence
- 🚀 Performance Optimisée : Construit avec Nginx, PHP-FPM et des optimisations de cache pour des temps de réponse rapides.
- 🛡️ Sécurité Renforcée : Isolation des services, gestion automatisée des secrets via un script, permissions de fichiers sécurisées et en-têtes de sécurité Nginx.
- 🧩 Architecture Modulaire : Un contrôle total sur votre stack. Ajoutez ou remplacez des composants facilement.
- 🤖 Automatisation & DX : Scripts pour les tâches courantes, environnement reproductible avec Docker et configuration centralisée.
- 📦 Prêt pour la Production : Inclut des healthchecks pour chaque service, une gestion des logs et une structure pensée pour la stabilité.
- 🔄 CI/CD Intégrée : Workflows GitHub Actions pour le linting, les scans de sécurité (Trivy) et le build/push automatique des images Docker avec versioning sémantique.
- Serveur Web : Nginx
- Application : WordPress (via l'image officielle)
- Base de données : MySQL
- Conteneurisation : Docker & Docker Compose
Suivez ces étapes pour lancer votre environnement FlexPress Core en quelques minutes.
Assurez-vous d'avoir les outils suivants installés sur votre machine :
- Git
- Docker Engine
- Docker Compose (généralement inclus avec Docker Desktop)
-
Clonez le dépôt :
git clone https://github.com/digitaleflex/flexpress-core.git cd flexpress-core -
Générez le fichier de configuration : Le projet utilise un fichier
.envpour gérer toutes les configurations (ports, mots de passe, etc.). Un script est fourni pour le générer automatiquement avec des secrets sécurisés.Exécutez cette commande depuis un terminal compatible Bash (comme Git Bash sur Windows).
./scripts/generate-env.sh
Ce script crée un fichier
.envà la racine du projet. Vous pouvez l'éditer si vous souhaitez personnaliser les ports ou d'autres configurations. -
Démarrez l'infrastructure : Lancez l'ensemble des services en arrière-plan.
docker compose up -d
Votre site WordPress est maintenant accessible ! Par défaut, vous pouvez le trouver à l'adresse http://localhost:9000 (ou le port que vous avez configuré dans .env).
Voici quelques commandes utiles pour gérer votre environnement.
| Commande | Description |
|---|---|
docker compose down |
Stoppe et supprime tous les conteneurs. |
docker compose down -v |
Stoppe et supprime les conteneurs ET les volumes (données). |
docker compose logs -f wordpress |
Affiche les logs du conteneur WordPress en temps réel. |
docker compose exec wordpress bash |
Ouvre un terminal bash dans le conteneur WordPress. |
docker compose exec wordpress wp ... |
Exécute une commande WP-CLI. |
Exemple WP-CLI : Lister les plugins installés.
docker compose exec wordpress wp plugin listflexpress-core/
├── .github/ # Workflows GitHub Actions (CI/CD)
├── config/
│ ├── nginx/ # Configuration Nginx
│ └── php/ # Configuration PHP (uploads.ini)
├── scripts/
│ ├── generate-env.sh # Script de génération du .env
│ └── init-mysql.sh # Script d'initialisation de la base de données
├── wordpress/ # Fichiers WordPress (thèmes, plugins)
├── .gitignore
├── docker-compose.yml # Fichier d'orchestration des services Docker
├── Dockerfile # Définition de l'image WordPress personnalisée
└── README.md
Le projet intègre un pipeline CI/CD complet via GitHub Actions :
- Linting (
super-linter.yml) : Analyse statique du code pour garantir la qualité et la cohérence sur chaquepush. - Build, Scan & Push (
docker-build.yml) :- Construit les images Docker pour les services.
- Scanne l'image WordPress avec Trivy pour détecter les vulnérabilités.
- Pousse les images vers Docker Hub avec un versioning intelligent :
latestpour chaque push surmain.- Tags sémantiques (ex:
1.0.0,1.0) pour chaque tag Gitv*poussé.
Les contributions sont les bienvenues ! Si vous souhaitez améliorer FlexPress Core, veuillez suivre ces étapes :
- Forkez le projet.
- Créez une nouvelle branche (
git checkout -b feature/nouvelle-fonctionnalite). - Commitez vos changements (
git commit -m 'feat: ajoute une nouvelle fonctionnalité'). - Poussez vers la branche (
git push origin feature/nouvelle-fonctionnalite). - Ouvrez une Pull Request.
Ce projet est distribué sous la Licence MIT. Consultez le fichier LICENSE pour plus de détails.
bash docker compose exec wordpress sh
- Erreur : "Port is already allocated"
- Cause : Un autre service sur votre machine utilise le port défini pour Nginx (par défaut
9000). - Solution : Modifiez la variable
NGINX_PORTdans votre fichier.envpour un autre port (ex:9001) et redémarrez avecdocker compose up -d.
- Cause : Un autre service sur votre machine utilise le port défini pour Nginx (par défaut
La documentation complète du projet se trouve dans le dossier docs/ :
- Guide de Configuration : Pour un aperçu détaillé de toutes les options de configuration.
- Documentation d'Architecture : Pour comprendre le fonctionnement interne des services.
- Guide de Sécurité : Pour comprendre les mesures de sécurité intégrées.
- Feuille de Route (Roadmap) : Pour voir les futures évolutions du projet.
- Changelog : Pour suivre l'historique des changements.
Nous accueillons avec plaisir les contributions de la communauté !
Avant de commencer, veuillez consulter notre Guide de Contribution et notre Code de Conduite pour comprendre les règles et le processus de soumission.
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Développé avec ❤️ par eflexcloud.