Walter Coiffure - Site WordPress Dockerisé
Site WordPress pour Walter Coiffure, configuré avec Docker et Traefik comme reverse proxy.
Prérequis
- Docker et Docker Compose installés
- Un réseau Docker Traefik déjà configuré (voir ci-dessous)
- Un nom de domaine pointant vers votre serveur
Configuration
1. Variables d'environnement
Copiez le fichier .env.example vers .env et modifiez les valeurs:
cp .env.example .env
Configurez les variables suivantes dans .env:
# Configuration de la base de données
MYSQL_DATABASE=waltercoiffure
MYSQL_ROOT_PASSWORD=votre_mot_de_passe_root
MYSQL_USER=waltercoiff
MYSQL_PASSWORD=votre_mot_de_passe
# Configuration du domaine
DOMAIN=votre-domaine.com
2. Réseau Traefik
Le docker-compose.yml suppose qu'un réseau Docker externe nommé traefik existe déjà. Si ce n'est pas le cas, créez-le:
docker network create traefik
3. Configuration Traefik
Assurez-vous que votre instance Traefik est configurée avec:
- Un resolver Let's Encrypt nommé
letsencrypt - Les entrypoints
web(port 80) etwebsecure(port 443)
Exemple de configuration Traefik minimale:
# traefik/docker-compose.yml
version: '3.9'
services:
traefik:
image: traefik:v2.10
container_name: traefik
restart: unless-stopped
ports:
- "80:80"
- "443:443"
networks:
- traefik
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/traefik.yml:ro
- ./acme.json:/acme.json
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.email=votre@email.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
networks:
traefik:
external: true
Démarrage
Première installation
- Démarrez les services:
docker-compose up -d
-
La base de données sera automatiquement initialisée avec le dump SQL situé dans
backup_dir/waltercoiffure/wc.dump.sql -
Attendez quelques secondes que les services démarrent:
docker-compose logs -f
- Accédez à votre site via
https://votre-domaine.com
Commandes utiles
# Voir les logs
docker-compose logs -f
# Voir les logs d'un service spécifique
docker-compose logs -f wordpress
docker-compose logs -f db
# Redémarrer les services
docker-compose restart
# Arrêter les services
docker-compose down
# Arrêter et supprimer les volumes (ATTENTION: supprime les données)
docker-compose down -v
Structure du projet
.
├── docker-compose.yml # Configuration Docker Compose
├── .env # Variables d'environnement (non versionné)
├── .env.example # Template des variables d'environnement
└── backup_dir/
└── waltercoiffure/
├── wordpress/ # Fichiers WordPress
├── plugins/ # Plugins WordPress
├── themes/ # Thèmes WordPress
├── uploads/ # Médias uploadés
└── wc.dump.sql # Dump de la base de données
Services
WordPress
- Image: wordpress:6.4-php8.2-apache
- Container: walter-coiffure-wp
- Réseau: traefik (externe), internal (interne)
- Volumes:
- Fichiers WordPress depuis
backup_dir/waltercoiffure/wordpress - Plugins, thèmes et uploads montés séparément
- Fichiers WordPress depuis
Base de données
- Image: mariadb:11.2
- Container: walter-coiffure-db
- Réseau: internal (interne uniquement)
- Volumes:
dbdatapour la persistance- Dump SQL pour l'initialisation
Sécurité
- Le fichier
.envcontient des informations sensibles et ne doit pas être versionné - La base de données n'est accessible que depuis le réseau interne
- Le site force HTTPS via Traefik
- Les certificats SSL sont gérés automatiquement par Let's Encrypt
Dépannage
Le site n'est pas accessible
-
Vérifiez que Traefik est en cours d'exécution:
docker ps | grep traefik -
Vérifiez les logs de WordPress:
docker-compose logs wordpress -
Vérifiez que le réseau
traefikexiste:docker network ls | grep traefik
Problèmes de base de données
-
Vérifiez les logs de la base de données:
docker-compose logs db -
Vérifiez la santé du service:
docker-compose ps -
Connectez-vous à la base de données:
docker-compose exec db mysql -u waltercoiff -p waltercoiffure
Certificats SSL
Si vous avez des problèmes avec les certificats SSL, vérifiez:
- Que votre domaine pointe bien vers votre serveur
- Que les ports 80 et 443 sont ouverts
- Les logs de Traefik pour voir les erreurs ACME
Support
Pour toute question ou problème, veuillez créer une issue dans le dépôt du projet.