Add Docker configuration for Walter Coiffure WordPress site
- Add docker-compose.yml with WordPress and MariaDB services - Configure Traefik reverse proxy with automatic SSL - Add environment variables template (.env.example) - Add comprehensive README with deployment instructions - Exclude waltercoiffure/ data directory from version control 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
212
README.md
Normal file
212
README.md
Normal file
@@ -0,0 +1,212 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user