WikiJs/applications/wordpress.md
2025-07-08 20:59:14 +00:00

142 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Wordpress
description: WordPress est un CMS (Content Management System) open source, puissant et flexible, idéal pour créer un site web, un blog ou même une boutique en ligne avec WooCommerce.
published: true
date: 2025-06-30T21:03:33.648Z
tags:
editor: markdown
dateCreated: 2025-05-06T19:02:21.559Z
---
Cette documentation présente un déploiement de WordPress à laide de **Docker Compose**, avec une base de données **MySQL**, et une exposition du site en HTTPS via **Traefik**, utilisant des **variables denvironnement dans les labels** pour une configuration facilement réutilisable.
---
## 🧾 Prérequis
* Docker & Docker Compose installés
* Un domaine configuré (ex: `mon-site.fr`) pointant vers votre serveur
* Un fichier `.env` contenant les variables suivantes :
```dotenv
SERVICE=wordpress
SERVICE_DB=wordpress_db
DB_ROOT_PASSWORD=motdepasse_root
DB_NAME=wordpress
DB_USER=wordpress
DB_PASSWORD=motdepasse_user
URL=mon-site.fr
```
---
## ⚙️ Fichier `docker-compose.yml`
```yaml
services:
wordpress_db:
image: mysql:8
container_name: wordpress_db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- ./data-db:/var/lib/mysql
networks:
- wordpress_net
wordpress:
image: wordpress:6.8.1
container_name: ${SERVICE}
restart: unless-stopped
environment:
- WORDPRESS_DB_HOST=${SERVICE_DB}
- WORDPRESS_DB_NAME=${DB_NAME}
- WORDPRESS_DB_USER=${DB_USER}
- WORDPRESS_DB_PASSWORD=${DB_PASSWORD}
volumes:
- ./data:/var/www/html
networks:
- wordpress_net
- traefik_net
labels:
- "traefik.enable=true"
- "traefik.http.routers.${SERVICE}.entrypoints=websecure"
- "traefik.http.routers.${SERVICE}.rule=Host(`${URL}`)"
- "traefik.http.services.${SERVICE}.loadbalancer.server.port=80"
- "traefik.http.routers.${SERVICE}.tls=true"
- "traefik.http.routers.${SERVICE}.tls.certresolver=http"
- "traefik.docker.network=traefik_net"
networks:
wordpress_net:
name: wordpress_net
driver: bridge
traefik_net:
external: true
```
---
## 🚀 Démarrage
Lancez les services en arrière-plan :
```bash
docker compose up -d
```
Si tout est bien configuré, vous pouvez accéder à WordPress à l'adresse :
🔗 `https://mon-site.fr`
---
## 📁 Arborescence recommandée
```
wordpress/
├── docker-compose.yml
├── .env
├── data/
└── data-db/
```
---
## 🔐 Sécurité & HTTPS
* Ce setup active le **HTTPS automatique** grâce à **Let's Encrypt**, via Traefik.
* Assurez-vous que les ports **80** et **443** sont ouverts sur le pare-feu de votre serveur.
* Votre domaine (`mon-site.fr`) doit pointer vers ladresse IP publique du serveur Docker/Traefik.
* Le `certresolver=http` doit être défini dans la configuration statique de **Traefik**.
---
## 🧼 Nettoyage
Pour arrêter les conteneurs :
```bash
docker compose down
```
Pour les supprimer avec les volumes (base de données incluse) :
```bash
docker compose down -v
```
---
## 📚 Ressources utiles
* [Documentation WordPress](https://fr.wordpress.org/support/)
* [Image Docker officielle WordPress](https://hub.docker.com/_/wordpress)
* [Image Docker officielle MySQL](https://hub.docker.com/_/mysql)
* [Traefik avec Docker](https://doc.traefik.io/traefik/providers/docker/)
---