{"id":29016406,"url":"https://github.com/digitaleflex/wpopsx","last_synced_at":"2026-05-05T14:32:12.640Z","repository":{"id":300808053,"uuid":"1007237175","full_name":"digitaleflex/WPOpsX","owner":"digitaleflex","description":"WPOpsX est une stack DevOps clé en main pour déployer, sécuriser, superviser et maintenir des sites WordPress (et Laravel) à l’échelle.","archived":false,"fork":false,"pushed_at":"2025-06-23T18:05:44.000Z","size":351,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-23T18:32:37.489Z","etag":null,"topics":["automation","deployment","docker","grafana","monitoring","portainer","prometheus","traefik","wordpress"],"latest_commit_sha":null,"homepage":"https://digitaleflex.com","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digitaleflex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-23T17:12:12.000Z","updated_at":"2025-06-23T18:13:53.000Z","dependencies_parsed_at":"2025-06-23T18:37:04.625Z","dependency_job_id":"6ff320ae-eabb-4f0f-a353-876f852912c4","html_url":"https://github.com/digitaleflex/WPOpsX","commit_stats":null,"previous_names":["digitaleflex/wpopsx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/digitaleflex/WPOpsX","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitaleflex%2FWPOpsX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitaleflex%2FWPOpsX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitaleflex%2FWPOpsX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitaleflex%2FWPOpsX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitaleflex","download_url":"https://codeload.github.com/digitaleflex/WPOpsX/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitaleflex%2FWPOpsX/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261960448,"owners_count":23236575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","deployment","docker","grafana","monitoring","portainer","prometheus","traefik","wordpress"],"created_at":"2025-06-25T22:08:14.528Z","updated_at":"2026-05-05T14:32:12.607Z","avatar_url":"https://github.com/digitaleflex.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛠️ WPOpsX\n\n[![Build Status](https://github.com/${{github.repository}}/actions/workflows/ci.yml/badge.svg)](https://github.com/${{github.repository}}/actions/workflows/ci.yml)\n[![Docker](https://img.shields.io/badge/docker-ready-blue?logo=docker)](https://www.docker.com/)\n[![Licence MIT](https://img.shields.io/badge/licence-MIT-green)](./LICENSE)\n[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen)](../../)\n\n## Plateforme de Déploiement Automatisé WordPress \u0026 Laravel avec Traefik\n\n**WPOpsX** est une solution clé en main pour déployer, sécuriser, superviser et maintenir des sites **WordPress** (et **Laravel**) à l'aide de **Docker** et **Traefik**.\nElle permet de gérer de façon centralisée plusieurs sites web avec :\n\n* Routage automatique HTTP/HTTPS\n* Certificats SSL Let's Encrypt\n* Monitoring avancé (Prometheus, Grafana, etc.)\n* Backups et mises à jour automatisées\n* Interface de gestion sécurisée\n\n\n\n## 🚀 Fonctionnalités principales\n\n* ✅ **Déploiement en une ligne** de sites WordPress ou Laravel via script\n* 🔐 **Gestion automatique des certificats SSL** (Let's Encrypt, Wildcard)\n* 🧱 **Infrastructure sécurisée** : permissions, en-têtes HTTP, isolation réseau\n* ♻️ **Sauvegardes automatisées** : fichiers + base de données, rotation sur 7 jours\n* 🔄 **Mises à jour automatiques** : WordPress, plugins, thèmes, traductions\n* 📈 **Monitoring intégré** :\n  * Prometheus, Grafana, Node Exporter, cAdvisor, Jaeger\n* 🔧 **Traefik prêt à l'emploi** : reverse proxy avec dashboard sécurisé\n* 🔧 **Scripts d'administration** pour automatiser la maintenance\n* 🖥️ **Portainer intégré** : interface web moderne pour gérer vos conteneurs, stacks, volumes et réseaux Docker en toute sécurité\n\n\n\n## 🧱 Architecture du projet\n\n```\nWPOpsX/\n├── traefik/                # Configuration et gestion centralisée des domaines\n│   ├── traefik.yml         # Configuration statique\n│   ├── dynamic/            # Règles dynamiques (SSL, headers, auth)\n│   └── update-domains.sh   # Mise à jour automatique des domaines\n│\n├── wordpress/              # Templates de déploiement WordPress/Laravel\n│   ├── template/           \n│   │   ├── docker-compose.yml\n│   │   ├── .env\n│   │   └── deploy.sh       # Script de déploiement automatique\n│   └── README.md           # Documentation détaillée\n│\n├── portainer/              # UI de gestion Docker (modulaire, sécurisée)\n│   └── docker-compose.yml  # Déploiement Portainer\n│\n└── monitoring/             # Stack d'observabilité complète\n    ├── prometheus/\n    ├── grafana/\n    └── exporters/\n```\n\n![Schéma d'architecture de la plateforme WPOpsX](architecture.png)\n\n*Schéma global : reverse proxy, monitoring, UI Docker, et sites WordPress/Laravel interconnectés via Traefik et réseaux Docker.*\n\n\n\n## ⚡ Guide d'utilisation rapide\n\n### 1. ✅ Prérequis\n\n* Docker \u0026 Docker Compose\n* Accès root ou sudo\n* DNS configuré pour les domaines à utiliser\n\n\n\n### 2. 🚀 Déployer un site WordPress\n\n```bash\ncd wordpress/template\n./deploy.sh monsite monsite.exemple.com\n```\n\n📘 Voir `wordpress/template/README.md` pour les options avancées (mots de passe, volumes, environnement Laravel, etc.)\n\n\n\n### 3. 🔄 Mettre à jour les domaines dans Traefik\n\n```bash\ncd traefik\n./update-domains.sh\n```\n\n\u003e 🔐 Les certificats SSL seront automatiquement générés et attachés.\n\n\n\n### 4. 📊 Accéder aux outils de monitoring\n\n* **Prometheus** : [https://prometheus.votre-domaine.com](https://prometheus.votre-domaine.com)\n* **Grafana** : [https://grafana.votre-domaine.com](https://grafana.votre-domaine.com)  (📂 Identifiants par défaut : `admin` / `admin`)\n* **cAdvisor** : [https://cadvisor.votre-domaine.com](https://cadvisor.votre-domaine.com)\n* **Traefik Dashboard** : [https://traefik.votre-domaine.com](https://traefik.votre-domaine.com) *(auth sécurisé)*\n\n\n\n### 5. 🖥️ Déployer Portainer (UI Docker)\n\n```bash\ncd portainer\ndocker-compose up -d\n```\n\n- Accédez à l'interface : https://portainer.${DOMAIN_NAME}\n- Sécurisé automatiquement par Traefik (SSL, accès via sous-domaine)\n- Permet la gestion graphique de tous vos conteneurs, stacks, volumes, réseaux, utilisateurs, etc.\n\n\n\n### 6. ⚙️ Variables d'environnement \u0026 configuration\n\nChaque module du projet (monitoring, portainer, traefik, wordpress) dispose d'un fichier `.env.example` à copier en `.env` et à personnaliser selon vos besoins.\n\n- `DOMAIN_NAME` : domaine principal utilisé pour le routage Traefik et l'accès aux interfaces web\n- `GRAFANA_ADMIN_USER` / `GRAFANA_ADMIN_PASSWORD` : identifiants Grafana (monitoring)\n- Autres variables spécifiques selon les modules (voir les README de chaque dossier)\n\n```bash\ncp \u003cmodule\u003e/.env.example \u003cmodule\u003e/.env\n# puis éditez le fichier .env selon vos besoins\n```\n\n\u003e 🔑 **Pensez à bien configurer vos accès et mots de passe pour la sécurité de votre infrastructure.**\n\n\n\n## 🧩 Fonctionnalités à venir\n\n* Intégration GitHub/GitLab CI/CD\n* Interface web de gestion multi-sites\n* Backups vers S3 (Amazon, Wasabi, etc.)\n* Module Laravel full auto\n* Alerting Telegram / Email\n\n\n\n## 🤝 Contribuer\n\nLes contributions sont les bienvenues !\nTu peux soumettre une PR, ouvrir une issue ou discuter dans les tickets.\n\n\n\n## 📄 Licence\n\nCe projet est sous licence **MIT** — libre d'usage, de modification et de redistribution, même en usage commercial.\n\n\n\n## 👨‍💻 Auteur\n\n**Eurin HASH** – Architecte solutions digitales, passionné de cloud et cybersécurité.\n👉 [eurinhash.com](https://eurinhash.com) | [digitaleflex.com](https://digitaleflex.com)\n\n\n\n## ❓ FAQ / Foire Aux Questions\n\n### Le déploiement échoue, que faire ?\n- Vérifiez que Docker et Docker Compose sont bien installés et fonctionnels.\n- Vérifiez que les ports 80 et 443 sont libres et accessibles.\n- Consultez les logs du script ou des services avec `docker logs \u003cservice\u003e`.\n\n### Les certificats SSL ne sont pas générés\n- Vérifiez que le port 80 est ouvert et accessible depuis l'extérieur.\n- Vérifiez la configuration DNS de vos domaines.\n- Consultez les logs Traefik pour d'éventuelles erreurs ACME.\n\n### Impossible d'accéder à l'interface Portainer, Grafana ou Prometheus\n- Vérifiez que le DNS pointe bien vers votre serveur.\n- Vérifiez que les services sont bien démarrés (`docker-compose ps`).\n- Vérifiez la configuration du fichier `.env` (domaine correct).\n\n### Comment changer les mots de passe par défaut ?\n- Modifiez les variables dans les fichiers `.env` de chaque module avant le premier lancement.\n- Pour Grafana : `GRAFANA_ADMIN_USER` et `GRAFANA_ADMIN_PASSWORD`.\n- Pour Portainer : définissez le mot de passe à la première connexion.\n\n### Comment sauvegarder ou restaurer mes données ?\n- Toutes les données sont stockées dans des volumes Docker (voir la documentation de chaque module).\n- Utilisez les scripts de sauvegarde intégrés ou `docker cp`/`docker volume` pour exporter/importer.\n\n### Comment ajouter un nouveau domaine ou site ?\n- Déployez un nouveau site avec le script WordPress/Laravel.\n- Exécutez `./update-domains.sh` dans le dossier `traefik` pour mettre à jour la configuration.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitaleflex%2Fwpopsx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitaleflex%2Fwpopsx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitaleflex%2Fwpopsx/lists"}