# 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: ```bash cp .env.example .env ``` Configurez les variables suivantes dans `.env`: ```bash # 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: ```bash 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) et `websecure` (port 443) Exemple de configuration Traefik minimale: ```yaml # 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 1. Démarrez les services: ```bash docker-compose up -d ``` 2. La base de données sera automatiquement initialisée avec le dump SQL situé dans `backup_dir/waltercoiffure/wc.dump.sql` 3. Attendez quelques secondes que les services démarrent: ```bash docker-compose logs -f ``` 4. Accédez à votre site via `https://votre-domaine.com` ### Commandes utiles ```bash # 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 ### Base de données - **Image**: mariadb:11.2 - **Container**: walter-coiffure-db - **Réseau**: internal (interne uniquement) - **Volumes**: - `dbdata` pour la persistance - Dump SQL pour l'initialisation ## Sécurité - Le fichier `.env` contient 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 1. Vérifiez que Traefik est en cours d'exécution: ```bash docker ps | grep traefik ``` 2. Vérifiez les logs de WordPress: ```bash docker-compose logs wordpress ``` 3. Vérifiez que le réseau `traefik` existe: ```bash docker network ls | grep traefik ``` ### Problèmes de base de données 1. Vérifiez les logs de la base de données: ```bash docker-compose logs db ``` 2. Vérifiez la santé du service: ```bash docker-compose ps ``` 3. Connectez-vous à la base de données: ```bash docker-compose exec db mysql -u waltercoiff -p waltercoiffure ``` ### Certificats SSL Si vous avez des problèmes avec les certificats SSL, vérifiez: 1. Que votre domaine pointe bien vers votre serveur 2. Que les ports 80 et 443 sont ouverts 3. 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.