Overview

Inception is a system administration project that deploys a complete web stack using Docker containers. Each service runs in its own container, built from Debian base images (no pre-made Docker Hub images allowed).

Architecture

                  ┌─────────────┐
    HTTPS:443 ──▶ │    Nginx    │
                  │  (TLS 1.2+) │
                  └──────┬──────┘
                         │ :9000
                  ┌──────▼──────┐
                  │  WordPress  │
                  │  + PHP-FPM  │
                  └──────┬──────┘
                         │ :3306
                  ┌──────▼──────┐
                  │   MariaDB   │
                  └─────────────┘

What I Built

  • 3 custom Dockerfiles: each built from debian:bookworm, no pre-built images
  • Nginx: reverse proxy with TLSv1.2/1.3, self-signed certificates
  • WordPress + PHP-FPM: automated setup via WP-CLI
  • MariaDB: database with automated initialization scripts
  • Docker Compose: orchestration with custom bridge network and named volumes
  • Secrets management: passwords stored as Docker secrets, not env vars

Key Concepts

  • Container isolation vs. virtual machines
  • Docker networking: bridge networks, service discovery by hostname
  • Volume management: named volumes with bind mounts for persistence
  • TLS certificate generation and Nginx SSL configuration
  • Infrastructure as Code: reproducible deployments via docker-compose.yml
  • Security: separating secrets from environment variables