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