Tech Used
The Brief
Inception is a project focused on setting up a small virtualized infrastructure using Docker and Docker Compose. • Implemented a TLS-secured NGINX server for secure web traffic. • Set up a fully configured WordPress instance with php-fpm and a standalone MariaDB container for database management. • Utilized persistent volumes for database and WordPress files, ensuring data persistence across container restarts.
The Project
Inception is a systems project — no frontend, no users, no product. The entire thing is infrastructure: a small virtualised environment built with Docker and Docker Compose, where every service runs in its own container and nothing is allowed to use a pre-built image.
What I Set Up
The stack is NGINX, WordPress with php-fpm, and MariaDB. NGINX handles TLS termination and proxies requests to WordPress. WordPress talks to MariaDB for the database. Each service is isolated, each communicates only through a defined Docker network.
The no-pre-built-images constraint meant writing every Dockerfile from scratch — pulling from Alpine or Debian base images and building up from there. That forces you to actually understand what each service needs to run, rather than letting someone else's image abstract it away.
TLS and Persistence
Configuring TLS properly was one of the more tedious parts: generating the certificate, wiring it into NGINX, making sure it terminated correctly before passing traffic downstream. Not complicated in hindsight, but the debugging loop when something is wrong in a containerised setup is slower than you'd expect.
Persistent volumes were the other key piece — without them, every container restart wipes the database and WordPress uploads. Getting the volume mounts right so data survived restarts was essential.
What I Took From It
Inception isn't the kind of project you show off, but it built a mental model I use constantly. Understanding what actually runs inside a container — the process tree, the network interfaces, the volume mounts — makes everything else clearer. Docker stopped being a black box.