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

3.4 KiB
Raw Blame History

title description published date tags editor dateCreated
Wordpress 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. true 2025-06-30T21:03:33.648Z markdown 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 :
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

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 :

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 :

docker compose down

Pour les supprimer avec les volumes (base de données incluse) :

docker compose down -v

📚 Ressources utiles