- 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>
213 lines
5.1 KiB
Markdown
213 lines
5.1 KiB
Markdown
# 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.
|