ProjectsSystems, network & algorithms
Inception
Docker infra with home-made monitoring
- Period
- Jul 2025 – Feb 2026
- Context
- 42 curriculum
- Team
- solo
- Grade
- 125/100 · outstanding ×3
- Go
- Docker
- MariaDB
- Network
- System administration
A small but complete infrastructure, built with Docker Compose: a WordPress site, its database, its web server, then everything I felt like adding, up to monitoring partly written by hand.
The basics
Each service has its own image, written from a Dockerfile (no ready-made images): Nginx with TLS as the only way in on port 443, WordPress with PHP-FPM, and MariaDB. Data lives in volumes, and services only talk to each other on a dedicated Docker network.
Services start in the right order thanks to healthchecks: WordPress waits until MariaDB is actually ready, not just started.
The extras
A Redis cache for WordPress, an FTP server to the site’s files, Adminer for the database, a static site in Nuxt, and a small game in Go. Then monitoring: Prometheus collects metrics and Grafana displays them.
The exporters, which translate the state of MariaDB, Redis, PHP-FPM and Nginx into Prometheus metrics, I wrote myself in Go. I also wrote “guardian”, a Go tool that generates secrets and environment variables safely, so that no password lies around in the repository.
What I took away
- A container is an isolated process, not a virtual machine.
- “Started” is not “ready”: hence healthchecks.
- Secrets are generated and mounted, never committed.