← Retour aux projets

École 42

Inception

Une infrastructure conteneurisée construite de zéro : NGINX, WordPress et MariaDB, chacun dans son propre conteneur Docker, sans image préconstruite.

Le contexte

Inception est le projet d'administration système du cursus 42 : construire une petite infrastructure à partir de Dockerfiles écrits soi-même, sans utiliser d'image Docker Hub préconstruite, en respectant les contraintes classiques d'une mise en production réelle (persistance des données, sécurité des échanges, redémarrage propre des services).

Architecture

Trois services communiquent sur un réseau Docker dédié : NGINX expose uniquement le port 443 et fait office de point d'entrée TLS, WordPress tourne en PHP-FPM derrière lui, et MariaDB reste accessible uniquement en interne. Les données de la base et les fichiers WordPress sont persistés sur deux volumes montés sur l'hôte, pour survivre à un arrêt complet de la stack.

Automatisation

NGINX génère son propre certificat auto-signé au moment de la construction de l'image, limité à TLS 1.2/1.3 avec une liste de chiffrements restreinte, et vérifie la validité de sa configuration avant de démarrer.

Le conteneur WordPress installe l'application au premier démarrage de façon entièrement automatisée avec wp-cli : téléchargement du cœur, attente active de la disponibilité de la base de données, configuration, création d'un compte administrateur et d'un second utilisateur, sans intervention manuelle.

Une limite assumée

Le dépôt contient un dossier secrets destiné à Docker Secrets, mais il n'est pas encore branché dans la configuration : les identifiants transitent aujourd'hui par un fichier .env en clair. C'est une amélioration identifiée plutôt qu'un point aveugle, et la prochaine étape naturelle du projet.