From 670137472be41d343ab9fb9ae12b9d2965a36662 Mon Sep 17 00:00:00 2001 From: BeauTroll <-> Date: Sun, 21 Dec 2025 08:05:23 +0100 Subject: [PATCH] Configure WordPress for Traefik reverse proxy with SSL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace direct port binding with Traefik labels to enable automatic HTTPS routing and certificate management. Add domain configuration variables to support dynamic routing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- .env.example | 5 +++++ docker-compose.yml | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index c1dae43..e374304 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,8 @@ +# Domain configuration +DOMAIN=example.tld +COMPOSE_PROJECT_NAME=name + +# MySQL MYSQL_DATABASE= MYSQL_ROOT_PASSWORD= MYSQL_USER= diff --git a/docker-compose.yml b/docker-compose.yml index c69ffe8..c9576d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,8 +2,8 @@ services: wordpress: image: wordpress:latest restart: always - ports: - - 8080:80 + expose: + - 80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: ${MYSQL_USER} @@ -11,8 +11,16 @@ services: WORDPRESS_DB_NAME: ${MYSQL_DATABASE} volumes: - wordpress:/var/www/html + labels: + - "traefik.enable=true" + - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=Host(`${DOMAIN}`)" + - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.entrypoints=websecure" + - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.tls=true" + - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.tls.certresolver=letsencrypt" + - "traefik.http.services.${COMPOSE_PROJECT_NAME}.loadbalancer.server.port=80" networks: - walter-coiffure-net + - traefik db: image: mariadb:latest restart: always @@ -39,6 +47,8 @@ services: networks: walter-coiffure-net: driver: bridge + traefik: + external: true volumes: wordpress: db: