elouann.dev
EN — English version

ProjetsSystèmes, réseau & algorithmes

Inception

Infra Docker et monitoring maison

Période
juil. 2025 – févr. 2026
Cadre
cursus 42
Équipe
solo
Note
125/100 · outstanding ×3
  • Go
  • Docker
  • MariaDB
  • Réseau
  • Administration système

Voir le code

Une petite infrastructure complète, montée avec Docker Compose : un site WordPress, sa base de données, son serveur web, puis tout ce que j’ai eu envie d’y ajouter, jusqu’à un monitoring écrit en partie à la main.

Internet:443 HTTPSclient FTP:21guardiansecrets (Go)inception-networkNginxTLSWordPressPHP-FPMMariaDBvolumeRediscacheAdminerUI de la baseWondercatsite NuxtFTPvsftpdGomblingjeu en GoFTP : fichiers de WordPressmonitoringexporters ×4écrits en GoPrometheuscollecteGrafanaafficheMariaDB · Redis · PHP-FPM · Nginx
SchémaLes services sur leur réseau Docker. Seul Nginx est exposé en HTTPS ; en bas, la chaîne de monitoring.

La base

Chaque service a sa propre image, écrite à partir d’un Dockerfile (pas d’image toute faite) : Nginx en TLS comme seule porte d’entrée sur le port 443, WordPress avec PHP-FPM, et MariaDB. Les données vivent dans des volumes, et les services ne se parlent que sur un réseau Docker dédié.

Les services démarrent dans le bon ordre grâce à des healthchecks : WordPress attend que MariaDB soit réellement prête, pas seulement lancée.

Les bonus

Un cache Redis pour WordPress, un serveur FTP vers les fichiers du site, Adminer pour la base, un site statique en Nuxt, et un petit jeu en Go. Puis le monitoring : Prometheus collecte les métriques, Grafana les affiche.

Les exporters, qui traduisent l’état de MariaDB, Redis, PHP-FPM et Nginx en métriques Prometheus, je les ai écrits moi-même en Go. J’ai aussi écrit « guardian », un outil en Go qui génère les secrets et les variables d’environnement de façon sûre, pour qu’aucun mot de passe ne traîne dans le dépôt.

Ce que j’en retiens

  • Un conteneur, c’est un processus isolé, pas une machine virtuelle.
  • « Démarré » n’est pas « prêt » : d’où les healthchecks.
  • Les secrets se génèrent et se montent, ils ne se commitent pas.