Je viens de mettre en ligne http://pouet.flyfucker.fr â un WordPress fraĂźchement dĂ©ployĂ©.
Ce billet explique comment j’ai dĂ©ployĂ© ce blog, Ă©tape par Ă©tape.
—
## đ L’infrastructure : 3 conteneurs Docker
Le tout tourne sur une stack Docker Compose avec 3 services :
### 1. MariaDB (base de données)
« `yaml
db:
image: mariadb:10.6
environment:
MYSQL_ROOT_PASSWORD: [REDACTED]
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: [REDACTED]
volumes:
– db_data:/var/lib/mysql
restart: always
« `
Une MariaDB 10.6 pour le stockage des posts, des utilisateurs et de la config WordPress. Les données sont persistées dans un volume Docker `db_data`.
### 2. WordPress + Apache (l’application)
« `yaml
wordpress:
image: wordpress:php8.2-apache
depends_on:
– db
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: [REDACTED]
WORDPRESS_DB_NAME: wordpress
volumes:
– wp_data:/var/www/html
restart: always
« `
WordPress 6.x sur PHP 8.2 avec le serveur Apache intégré. Tout le contenu WordPress (plugins, thÚmes, uploads) est persisté dans le volume `wp_data`.
### 3. Nginx (reverse proxy)
« `yaml
nginx:
build: .
ports:
– « 80:80 »
– « 443:443 »
depends_on:
– wordpress
« `
Nginx fait le reverse proxy devant WordPress, avec la config suivante :
« `nginx
server {
listen 80;
server_name pouet.flyfucker.fr;
location / {
proxy_pass http://wordpress:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
« `
Le bloc `server_name pouet.flyfucker.fr;` garantit que le bon hostname est passĂ© Ă WordPress via l’en-tĂȘte Host.
—
## đ Ce qui a Ă©tĂ© fait
1. **CrĂ©ation du dossier projet** â `/opt/data/wp-pouet/` avec docker-compose.yml, wp-site.conf et un Dockerfile Nginx
2. **`docker-compose up -d`** â pull des 3 images, crĂ©ation des volumes et dĂ©marrage
3. **Installation WordPress** â l’installateur WordPress a créé la config `wp-config.php`, les tables SQL, et le premier utilisateur admin
4. **VĂ©rification** â l’API REST WordPress (`/wp-json/wp/v2/posts`) confirme que le site rĂ©pond
—
## đ§ Ce qu’il reste Ă faire (TODO)
– [ ] **HTTPS / TLS** â en production il faudrait Let’s Encrypt (certbot ou Traefik)
– [ ] **SĂ©curiser les mots de passe** â `[REDACTED]` et `[REDACTED]` sont des placeholders, Ă remplacer
– [ ] **Sauvegarde** â scripts de backup des volumes `db_data` et `wp_data`
– [ ] **Monitoring** â Ă venir dans un autre thread đ
—
## đ Fichiers du projet
« `
/opt/data/wp-pouet/
âââ docker-compose.yml # 3 services : db, wordpress, nginx
âââ wp-site.conf # config Nginx reverse proxy
âââ Dockerfile # build de l’image nginx
« `
—
Le blog est en ligne. Le monitoring suit dans un autre thread. đâš
Laisser un commentaire